Java字符串操作及与C#字符串操作的不同(2)

1 String source = "郭志奇"; 2 System.out.println(source.indexOf("郭"));// 输出0 3 System.out.println(source.indexOf(""));// 输出0

lastIndexOf()方法:从字符串结束位置开始查找

1 String source = "郭志奇"; 2 System.out.println(source.lastIndexOf("郭"));// 输出0 3 System.out.println(source.lastIndexOf(""));// 输出3

找茬:indexOf查找空字符串,返回值是0。lastIndexOf方法查找空格,返回值是3.等于字符串的长度。
查看lastIndexOf对应的C#代码实现:

1 string source = "郭志奇"; 2 Console.WriteLine(source.Length);//输出3 3 Console.WriteLine(source.LastIndexOf(""));//输出2 4 Console.Read();

通过对比lastIndexOf查找空字符串,可以发现C#和Java的不同,Java返回的是字符串的长度,而C#返回的是字符串长度-1。个人认为C#的处理更符合目的。

获取指定索引的字符
通过charAt方法获取指定索引的字符

1 String source = "郭志奇"; 2 System.out.println(source.charAt(0));//输出郭 3 System.out.println(source.charAt(source.length() - 1));//输出奇

为了学习,我们就要思考,假如我输入了负数或大于字符串长度的索引会出现什么呢?代码验证

1 String source = "郭志奇"; 2 System.out.println(source.charAt(-1)); 3 System.out.println(source.charAt(source.length() + 11));

没错,代码执行出错了,抛出异常:java.lang.StringIndexOutOfBoundsException

去重空格
通过trim方法移除字符串前后空格(包含tab)

1 String source = " 郭志奇 ";// 前后都有空格 2 String source1 = " 郭志奇 "; 3 System.out.println(source.length()); 4 System.out.println(source.trim().length()); 5 System.out.println(source1.length()); 6 System.out.println(source1.trim().length());

令人遗憾的是,Java没有提供只清空前缀空格或后缀空格的方法。而C#却有。

判断相等
两种判断字符串相等的方法,双等号及equals、equalsIgnoreCase
通过代码来进行说明:

1 String source = new String("郭志奇A"); 2 String source1 = new String("郭语晨"); 3 String source2 = "郭志奇A"; 4 String source3 = "郭语晨"; 5 6 String source4 = "郭志奇a"; 7 8 System.out.println(source == source2);// false 9 System.out.println(source.equals(source2));// true 10 System.out.println(source1 == source3);// false 11 System.out.println(source1.equals(source3));// true 12 13 System.out.println(source == source4);// false 14 System.out.println(source.equals(source4));// false 15 System.out.println(source.equalsIgnoreCase(source4));// true

双等号代表的是字符串引用是否相同,对于不同对象的字符串,双等号比较是不同的。
equals比较的是字符串的值,但区分大小写
equalsIgnoreCase:比较的是字符串的值,不区分大小写
进行字符串比较,尽量避免使用双等号。

大小写转换
toUpperCase转换成大写形式,toLowerCase转换成小写形式。但对于数字、空格则会忽略,不进行转换。比较简单

字符串分隔
通过split方法进行字符串分隔,split参数是分隔符,返回值是分割后的字符串数组。较简单。

字符串比较
通过compareTo方法进行字符串比较,

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/446f8bb6ad31cccc39ae9cea19c8818f.html