一: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.结果截图。