对于java中String的理解

对于java中String的理解

1.创建字符串

  • 使用关键字创建

    1
    String str = "Runoob";
  • 使用构造方法来创建 String对象

    1
    String str2=new string("Runoob");

两种创建方式区别

String创建的字符串存储在公共池中,而new创建的字符串对象在堆上:

string简单理解就是将其转换为字符串:例

1
2
3
4
5
6
7
public class StringDemo{
public static void main(String args[]){
char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
System.out.println( helloString ); //runoob 此时就是应用第二种创建方式将单个字符转换为了字符串
}
}

注意: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
2
3
4
String s2 = new String("abc");
System.out.println(s2);
System.out.println(s2.equals("abc"));//true 因为equals方法重写了,所以比较的是内容
System.out.println(s2=="abc");//比较的是地址值
  • 查看是否包含 contains

    1
    2
    3
    String s5 = "123";
    boolean contains = s5.contains("1");
    System.out.println(contains); //true
  • 忽略大小写比较 equalsIgnoreCase

    1
    2
    boolean c = "abc".equalsIgnoreCase("ABc");
    System.out.println(c);//true
  • 以什么开头 startsWith

    1
    2
    3
    String s5 = "123";
    boolean startsWith = s5.startsWith("1");
    System.out.println(startsWith);//true
  • 以什么结尾

1
2
3
String s5 = "123";
boolean endsWith = s5.endsWith("3");
System.out.println(endsWith);//true
  • 是不是空字符串

    1
    2
    3
    String 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是转换为字符串

参考:https://www.cnblogs.com/huan-guo/p/8404891.html

-------------本文结束感谢您的阅读-------------