对于java中String的理解
1.创建字符串
使用关键字创建
1
String str = "Runoob";
使用构造方法来创建
String对象1
String str2=new string("Runoob");
两种创建方式区别
String创建的字符串存储在公共池中,而new创建的字符串对象在堆上:
string简单理解就是将其转换为字符串:例
1 | public class StringDemo{ |
注意:String类是不可改变的,所以你一旦创建了 String对象,那它的值就无法改变了。
由于String被声明为final,所以不可变,具体参考:https://github.com/CyC2018/CS-Notes/blob/master/notes/Java 基础.md#二string
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
2.String中的方法
获取字符串长度
字符串.length();获取角标
字符串.charAt(索引)获取的是对应的数值截取(1)
字符串.substring(索引)从这个数开始往后的内容进行截取,不包含本数截取(2)
字符串.substring(索引1,索引2)截取到哪一位 从1位置开始到2位置之前 含头不含尾索引
字符串.indexOf返回具体那个数的索引大写
字符串.toUpperCase()小写
字符串.toLowerCase()连接字符串两种方法
a:
string1.concat(string2);使用concat()来连接,但是少用 b: 使用+号来连接,
"Hello," + " runoob" + "!"输出 ```“Hello, runoob!”``所以如果想要使一个数变成字符串,那么拼接上一个
"", 如:数+""即可比较字符串
equals和==的区别(使用equals和hashCode方法一般要进行重写,重写之后比较的是内容,否则是其地址值的比较)
1 | String s2 = new String("abc"); |
查看是否包含
contains1
2
3String s5 = "123";
boolean contains = s5.contains("1");
System.out.println(contains); //true忽略大小写比较
equalsIgnoreCase1
2boolean c = "abc".equalsIgnoreCase("ABc");
System.out.println(c);//true以什么开头
startsWith1
2
3String s5 = "123";
boolean startsWith = s5.startsWith("1");
System.out.println(startsWith);//true以什么结尾
1 | String s5 = "123"; |
是不是空字符串
1
2
3String s5 = "123";
boolean empty = s5.isEmpty();
System.out.println(empty);//false
3.toString()
因为toString方法是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法。
总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法
toString()应用的时候也要重写,否则得到的是地址值,重写后得到的是属性值
就是想要输出成String类型但是这个东西本身不是String’类型就要调用toString()方法【eclipse里面重写 tostring快捷键 alt+shift+s s】
Arrays.toString 是将数组转为字符串
toString是转换为字符串