java字符串
一些简单的实现我就直接贴代码,不浪费大家的时间
var s1 = new String("The Old Man and the Sea is one of");
//求子串
//String substring (int beginIndex) 返回一个字符串,该字符串是此字符串的子字符串。
//String substring (int beginIndex, int endIndex) 返回一个字符串,该字符串是此字符串的子字符串。
var s2 = s1.substring(2); // 在一个位置之后的全部字符串
var s3 = s1.substring(2,6); // 取一个范围内的字符串
System.out.println("求子串 s2:" + s2);
System.out.println("求子串 s2 " + s3);
//字符串的拼接
//String concat (String str) 将指定的字符串连接到此字符串的末尾。
var s4 = new String("hello");
var s5 = new String("world");
System.out.println("连接后的字符串 :" + s4.concat(s5));
//设置以某一个字符隔开字符串中的字符
var join = String.join("\\", "h", "e", "l", "l", "o");
System.out.println("join: " + join);
//设置一个字符串重复出现n次
var repeat = "abc".repeat(3);
System.out.println("repeat: "+ repeat);
//相等操作 --- == 操作看下方解释
//boolean equals (Object anObject) 将此字符串与指定的对象进行比较。
//boolean equalsIgnoreCase (String anotherString) 将此String与 another 进行比较String,忽略大小写的考虑。
System.out.println("不区分大小写:" + "abc".equals("ABC"));
System.out.println("区分大小写:" + "abc".equalsIgnoreCase("ABC"));
//字符串的长度 -- 看下方解释
System.out.println("s1长度:" + s1.length());
//字符串构建器 看文档吧和String注意事项一样
var s7 = new StringBuilder("abc");
在java中将String类型设为不可变的,这样的虽然对于字符串的直接修改带来了一些影响,但是他最好的一个特点是可以共享,意思就是在java虚拟机中存在一个存储池用来存放字符串的信息,当我们在保存一个字符串s1时,虚拟机会首先查看存储池的字符串,有无与字符串s1相同的,如果有则将新的字符串指向这个位置,如果没有则将这个字符串s1写入到该存储池中。(注意这个字符串只是字面量共享,互相不影响操作)
在java中对于**==操作我们需要知道该操作比较的存储位置是否相同**而不是其内容是否相同,
在老师教导以及我们的理解中我们都认为,length是返回字符串的长度,就连java开发文档也是这样的解释 int length() 返回此字符串的长度。,其实不然,length是返回字符串的代码单元,接下来我们先了解对于**码点 代码单元**理解,然后再取出一个实例解释:
//字符串的长度
String s6 = new String("hi\uD835\uDD46");
System.out.println("代码单元长度:" + s6.length());
System.out.println("码点长度:"+ s6.codePointCount(0,s6.length()));
//charAT也是返回的是代码单元
System.out.println("取某一个位置的代码单元:" + s6.charAt(2));