Java学习之字符串类String(一)

来源:互联网 发布:德国 四川 知乎 编辑:程序博客网 时间:2024/05/17 00:49

1.字符串的比较

public class stringConparation {    public static void main(String[] args) {        String s1 = "Welcome to java";        String s2 = new String("Welcome to java");        String s3 = "Welcome to java";        System.out.println(s1 == s2);        System.out.println(s1 == s3);        System.out.println(s1.equals(s2));        System.out.println(s1.equals(s3));    }}

运算结果

falsetruetruetrue
  1. 运算符==只能检测是否指向同一个对象,对于s1和s3指向的对象,和s2不同,而且这里引入了一个interned string object的概念,但我现在是觉得没有必要,你直接说对于两种不同的创建方法,创建出的对象指向的地址不同就可以了。
  2. 比较的话使用equals方法,这里的返回的boolean型值,还有一种比较的方法就是compareTo()方法,这里返回的就是一个int型的整数,实际值是根据s1和s2从左到右第一个不同的字符之间的距离得出的。(距离的计算是否就是ASCII吗呢?结果我的猜想是正确的)

举例说明compareTo()方法:

String s1 = "abc"; String s2 = "abcd"; String s3 = "abcdfg"; String s4 = "1bcdfg"; String s5 = "cdfg"; System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1) System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3) System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48) System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)

2.字符串的长度,字符以及组合字符串

+length() :int   //返回这个字符串的字符个数+charAt(index:int):char //返回这个字符串的制定下标处的字符+concat(s1:string):String //返回的这个字符串和s1组合而成的新字符串

这里有一个问题就是如果charAt的参数所指的下标是超出这个字符串的长度了呢?

解答:这里会有抛出一个异常 StringIndexOutOfBoundsException

3.获取子串

+substring(beginIndex:int,endIndex:int):String

返回的是以指定的beginIndex开始并延续到endIndex-1的字符串的子串。

4.字符串的转换、替换和分隔

+toLowCase():String+toUpperCase():String+trim():String         //返回去掉了两端的空白字符之后的新字符串+replace(oldChar:char,newChar:char):String+replaceFirst(oldString:String,newString:String):String+replaceAll(oldString:String,newString:String):String+split(delimiter:String):String

注释:repalce方法只能替换一个字符数,若要用到字符串,那只能用repalceAll,而repalceFirst只是替换遇到的第一个字符串。(一个字符数也可以叫字符串,只是短一点)

0 0
原创粉丝点击