String类

 

String类

  • 字符串是常量,创建之后不可改变

 

 //修改字符串的内容
String str = "hello";
str = str + " world";

 

内存分配图:

 

 

 

 

 

  • 字符串字面值存储在字符串池中,可以共享。

    • 在Java中形成一个对象池,在这个对象池中保存多个对象,新实例化的对象如果已经在池中定义了,则不再重新定义,而从池中直接取出继续使用。

    • String就是采用这样的设计,所以当内容重复时,会将对象指向已存在的实例空间

 


实例化String对象

1、直接为String赋值

产生一个对象,字符串池中存储

String name = "xiaoming";

2、使用标准的new调用构造方法完成实例化

产生两个对象,堆,栈各存储一个

String name = new String("xiaoming");

 

package lesson2;

public class Demo03 {
public static void main(String[] args) {
String s1 = new String("java");
String s2 = new String("java");
System.out.println(s1.equals(s2));equals比较的是数值
System.out.println(s1==s2);==比较的是地址空间
}
}

 

 

 

 

 

常用方法

 

1、length()

取得字符串的长度

 

public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.length());
}
}

 

 

2、charAt(int index)

从一个字符串中取出指定位置的字符

 public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.charAt(12));

}
}

 

 

 

 

3、contains(CharSequence s)

判断字符串是否包含某个字符或字符串

 public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.contains("java"));
}
}

 

 

 

 



4、toCharArray()

将一个字符串变为字符数组

 


import java.util.Arrays;

public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.toCharArray());
System.out.println(Arrays.toString(content.toCharArray()));
}
}

 

 

 

5、indexOf(String str)

从头开始查找指定的字符串首次出现的位置,找不到返回-1

 


public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的java语言.java真不赖";
System.out.println(content.indexOf("java"));
System.out.println(content.indexOf("java",5));从第五个位置开始,寻找第一次出现java的位置
}
}

 

 

 

 

6、lastIndexOf(String srt)

查找字符串在当前字符串中最后一次出现的下标索引

public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的java语言.java真不赖";
System.out.println(content.lastIndexOf("java"));
}
}


 

 

 

 


7、trim()

清除左右两端的空格

 package lesson2;

public class Demo03 {
public static void main(String[] args) {
String content = " hello world ";
System.out.println(content.trim());

}
}

 

 

8、toUpperCase()

将一个字符串全部变为大写字母

 package lesson2;

public class Demo03 {
public static void main(String[] args) {
String content = " hello world ";
System.out.println(content.toUpperCase());
}
}

 

 

 

9、toLowerCase()

将一个字符串全部变为小写字母

 

package lesson2;

public class Demo03 {
public static void main(String[] args) {
String content = " HELLO WORLD ";
System.out.println(content.toLowerCase());
}
}

 

 

10、endsWith(String suffix)

判断是否以指定的字符串结尾

 package lesson2;

public class Demo03 {
public static void main(String[] args) {
String content = "hello.java";
System.out.println(content.endsWith(".java"));
}
}

 

 

 

11、startsWith(String prefix)

判断是否以指定的字符串开头

 

package lesson2;

public class Demo03 {
public static void main(String[] args) {
String content = "hello.java";
System.out.println(content.startsWith("hello"));
}
}

 

 

 

12、replaceAll(String regex,String replacement)

字符串替换(支持正则表达式)

 package lesson2;

public class Demo03 {
public static void main(String[] args) {
String content = "hello.java";
System.out.println(content.replace("java","php"));
}
}

 

 

 

13、split(String regex)

按照指定的字符串进行拆分,返回一个字符串数组。(支持正则表达式)

package lesson2;

public class Demo03 {
public static void main(String[] args) {
// String content = "hello.java";
String say = "java is the best programing language";
String[] arr= say.split(" ");
System.out.println(arr.length);
for (String string: arr
) {
System.out.println(string);
}
}
}

 

 


14、equals中忽略大小写的比较

package lesson2;

public class Demo03 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "HELLO";
System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));
}
}

 

 

 

15、compare是比较编码表中位置

 

例一:

package lesson2;

public class Demo03 {
public static void main(String[] args) {
String s1 = "abc";//97
String s2 = "xyz";//120
System.out.println(s1.compareTo(s2));
}
}

 

 

 

例二:

package lesson2;

public class Demo03 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abcxyz";
System.out.println(s1.compareTo(s2));
}
}

 

 

这时候我们比较的就是长度了!

 

16、

substring(int beginIndex ) 从指定位置开始,一直取到尾进行字符串的截取
substring(int begin,int end) 指定截取字符串的开始点和结束点
posted @ 2022-08-09 10:42  屯子里唯一的架构师  阅读(23)  评论(0编辑  收藏  举报