字符串动手动脑实践及凯撒密码
1、运行以下代码:
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)); } }
结果截图:
总结:
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
4、==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。
2、String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明
1.Length()
计算字符串长度。
2.charAt()
获取指定位置的字符
3.getChars()
获取从指定位置起的子串复制到字符数组中,比如 s1.getChars( 0, 5, charArray, 0 );四个参数的含义:
1)被拷贝字符在字串中的起始位置。
2)被拷贝的最后一个字符在字串中的下标再加1。
3)目标字符数组。
4)拷贝的字符放在字符数组中的起始下标。
4.replace()
子串替换,replace(oldstring,newstring);用新字符串代替旧字符串。
5.toUpperCase()、toLowerCase()
大小写转换,比如str.toUpperCase();将str中所有小写转换成大写。
6.trim()
去除头尾空格,比如str=” abc ”,str.trim();将abc头尾的空格去掉。
7.toCharArray()将字符串对象转换为字符数组,str.toCharArray();将str转换成char数组。
3、凯撒密码
import java.io.*; import java.util.Scanner; public class KaiSa1{ public static void main(String[] args){ System.out.print("请输入密钥:"); Scanner s=new Scanner(System.in); int a=s.nextInt(); C(a); } public static void C(int n){ try{ char b[]; BufferedReader br2=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一段明文:"); String str2=br2.readLine(); b=str2.toCharArray(); System.out.println("密文为:"); int k=n; for(int i=0;i<str2.length();i++) { char ch=(char)((b[i]-'a'+k)%26+'a'); System.out.println(ch); } System.out.println("密匙K="+k); } catch(IOException e){ System.out.println(e.getMessage()); } } }
验证截图: