动手动脑:
String.equals()方法的使用:
public class StringPool {
public static void main(String args[])
{
String s0="Hello";
String s1="Hello";
String s2="He"+"llo";
System.out.println(s0==s1);//true
System.out.println(s0==s2);//true
System.out.println(new String("Hello")==new String("Hello"));//false
}
}
分析:在java中,内容相同的字符串常量只保存一份以节约空间,所以s0,s1实际上引用的是同一个对象。java编译器编译s2时,会去掉+号,直接把两个字符串连接起来得到一个字符串,所以s0和s2也引用的是同一个对象。所以返回值都是true.当直接使用new关键字创建对象时,虽然值相同,但仍然是两个独立的对象,所以返回值为false.
public class StringPool {
public static void main(String args[])
{
String s1="a";
String s2=s1;
System.out.println(s1==s2);//true
s1+="b";
System.out.println(s1==s2);//false
System.out.println(s1=="ab");//false
System.out.println(s1.equals("ab"));//true
}
}
分析:给字符串赋值意味着两个变量现在引用同一个字符串变量对象,所以s1==s2返回值为true,String对象是只读的,使用+修改了s1变量的值,实际上得到了一个新的字符串,内容为ab,与原来s1所引用的对象无关,所以返回值是false,字符串常量引用的字符串与s1引用的对象无关,string.equas()方法可以比较两个字符串的内容。
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);//使用new关键字创建了两个不同的对象,所以返回值为false
System.out.println(s1.equals(s2));//内容相同,值为true
String s3="Hello";
String s4="Hello";
System.out.println(s3==s4);//内容相同的常量,引用同一个对象,返回值为true
System.out.println(s3.equals(s4));//内容相同,返回值为true
}
}
Length()//返回当前字符串长度
charAt(int index):取字符串中的某一个字符,其中的参数index指的是字符串中的序数。字符串的序数从0到length()-1.
getChars(int srcBegin,int srcEnd,char[]dst,int dstBegin):该方法将字符串拷贝到字符数组中。其中srcBegin为拷贝的起始位置,srcEnd为拷贝的结束位置,字符串数组dst为目标字符数组,dstBegin为目的字符数组拷贝的起始位置。
replace(char oldchar,char newchar)//将字符串中的第一个oldchar替换成newchar
toUpperCase()://将字符串转化成大写
toLowerCase()://将字符串转化为小写
trim()://返回该字符串去掉开头和结尾空格后的字符串
toCharArray()://将string对象转换成char数组
代码:
import javax.swing.JOptionPane;
public class Jiami {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String x=JOptionPane.showInputDialog("请输入一个字符串:");
char charArray[]=x.toCharArray();
for(int i=0;i<charArray.length;i++)
{
if(charArray[i]=='X'||charArray[i]=='Y'||charArray[i]=='Z')
charArray[i]=(char)(charArray[i]-23);
else
charArray[i]=(char)(charArray[i]+3);
}
JOptionPane.showMessageDialog(null, "加密后的字符串:"+String.valueOf(charArray));
}
}