String 在 Java 中属于对象,Java 提供 String 类来创建和操作字符串。
一、String基础
1. 创建字符串
// 相同引用
String s1 = "Runoob"; // String 直接创建
String s2 = "Runoob"; // String 直接创建
String s3 = s1;
// 不同引用
String s4 = new String("Runoob"); // String 对象创建
String s5 = new String("Runoob"); // String 对象创建
// String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上
String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,常用的如下:
(1)直接创建
String str1="hello";
(2)使用构造函数
String str2=new string(str1); // 传入字符串
(3)通过字符数组创建
char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
(4)通过 String.valueOf()从其他类型转换
String 类中提供,String.valueOf()将基本数据型态转换成 String 的 static 方法
int a = 97;
// 将int转换成 String
String s1 = String.valueOf(a);
// String.valueOf(char[] c,int offset, int count);
char[] c = { 'r', 'u', 'n', 'o', 'o', 'b'};
String s2 = String.valueOf(c,2, 3); // "noo"
(5)其他
/ 可以使用 Integer.parseInt() 或 Integer.valueOf() 将 String 转换为 int
int a = 97;
String s = Integer.toString(a);
String number = "-7";
int result = Integer.parseInt(number); // 返回原始整数
Integer result2 = Integer.valueOf(number); // 返回一个 Integer 对象
2. String 基本操作
(1)length()获取字符串长度
String s = "String";
// length()获取字符串长度
int len = s.length();
(2)连接字符串concat()或+
string s = string1.concat(string2);
string ss = string1 + string2;
(3)替换字符串
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到
// String replace(char oldChar, char newChar)
string s = string2.replace("String", "java");
(4)String与char转换
// char[] toCharArray()
// 将此字符串转换为一个新的字符数组。
char[] c1 = string1.toCharArray();
// char charAt(int index)
string1.charAt(0); // 返回指定索引处的 char 值
(5)字符串比较
// int compareTo(Object o)
String str1 = "Strings";
String str2 = "Strings";
String str3 = "Strings123";
int result = str1.compareTo( str2 ); // 0
result = str2.compareTo( str3 ); //-3
// boolean equals()
boolean flag = str1.equals(str2); // true
flag = str2.equals(str3); // false
3. String 常用操作
(1)截取子字符串substring()
// substring(int beginIndex,int endIndex)
// beginIndex起始索引(包含),endIndex结束索引(不包含)
Sting s = "apple"
String ss = s.substring(1,3); //"pp"
String ss = s.substring(2); //"ple"
// 不指定endIndex,表示截取到目标字符串的末尾。
(2)分割字符串split()
str.split(" "); //以空格分割字符串
// 以碰到的每个空格、换行符、回车为分隔线,遇到连续多个空格、换行符、回车就会连续划分
str.split("\\s");
//以空格、换行符、回车为分隔线,相邻的多个空格、换行符、回车仍然视为只有一个
str.split("\\s+");
(3)字符串判断
// startsWith(String prefix, int toffset)
// prefix 前缀 toffset 字符串中开始查找的位置
str.startsWith(s); // 默认从首个字符开始
// endsWith(String suffix)
str.endsWith(s);