对于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"); |
查看是否包含
contains
1
2
3String s5 = "123";
boolean contains = s5.contains("1");
System.out.println(contains); //true忽略大小写比较
equalsIgnoreCase
1
2boolean c = "abc".equalsIgnoreCase("ABc");
System.out.println(c);//true以什么开头
startsWith
1
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是转换为字符串