String类型

一:Stringpool.java检测

import javax.swing.*;
public class StringPool {
    
    public static void main(String args[])
    {
        
        String s0=" Hello ";
     //  s0+='o';
        String s1="Hello";
        String s3=s0.trim();
        String s2="He"+"llo";
        
        System.out.println(s0=="Hello");//true
        
        System.out.println(s0==s2);//true
        
        System.out.println(new String("Hello")==new String("Hello"));//false
        
    }
//相同字符只保存一个地址
//==判断两个对象是否相等   地址和内容
}

结果:

原因分析:

在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。
编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。
当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象

:Stringequals.java检测

public class StringEquals {

    
/**
     * @param args the command line arguments
     */
    
    public static void main(String[] args) {
        
        String s1=new String("Hello");
        String s2=new String("Hello");
      
        System.out.println(s1==s2);      
        System.out.println(s1.equals(s2));
        String s3="Hello"; 
        String s4="Hello";        
        System.out.println(s3==s4);      
        System.out.println(s3.equals(s4));
        
    
    }


}
 

 java中每次 String s2=new String("Hello");都创建一个对象。上例中创建两个对象,当s1==s2时输出错误,而运用java.equals()时,输出true.

String.equals()用于判断两个String对象内容是否相等。

三: Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

 1 string.length()是用来求字符串的长度,返回值为字符串的长度。

 2 string.charAt()为取该字符串某个位置的字符,从0开始,例如string.charAt(0)就会返回该字符串的第一个字符。

 3   string.getChars()为将这个字符串中的字符复制到目标字符数组。

 4   string.replace()为将原string 中的元素或子串替换。返回替换后的string。

 5 string.toUpperCase()为将字符串string中字符变为大写。

 6 string.toLowerCase()为将字符串string中字符变为小写。

 7 string.trim()为去除字符串的头为空格。

 8 string.toCharArray()为将字符串转换为字符数组。

[实验任务四]:

1.设计思想

  本程序首先用对话框输入字符串,运用length()函数求出字符串长度,运用charAt函数从字符串零下标开始逐个加密,每个字符加3,即字符在ascll码中后移三位。最后输出即可。

2.程序流程

            

     

3.源代码

        public class jiami {

     public static void main(String args[]){

         String output="";

        String st=JOptionPane.showInputDialog("请输入字符串");

        // Scanner sc=new Scanner(System.in);

        // String st=sc.next();

         

        for ( int i = 0; i < st.length(); i++ ){

                   if(st.charAt(i)<'x')

                  output+=(char)(st.charAt(i)+3);

                   else

                         output+=(char)(st.charAt(i)-23);

                     

         }

   

         JOptionPane.showMessageDialog( null, output,

                 "Rolling a Die 6000 Times",

                 JOptionPane.INFORMATION_MESSAGE );

     }

}

4.结果截图。

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/du1269038969/p/6004568.html