一、Java定义字符串
直接定义
String str_1="Hello Java";
或者
String str_2;
str_2="Heilo Java";
使用 String 类定义
1. String()
初始化一个新创建的 String 对象,表示一个空字符序列。
2. String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列。换句话说,新创建的字符串是该参数字符串的副本。例如:
- String str1=new String("Hello Java");
- String str2=new String(str1);
这里 str1 和 str2 的值是相等的。
3. String(char[ ]value)
分配一个新的字符串,将参数中的字符数组元素全部变为字符串。该字符数组的内容已被复制,后续对字符数组的修改不会影响新创建的字符串。例如:
- char a[]={'H','e','l','l','0'};
- String sChar=new String(a);
- a[1]='s';
上述 sChar 变量的值是字符串"Hello"。 即使在创建字符串之后,对 a 数组中的第 2 个元素进行了修改,但未影响 sChar 的值。
4. String(char[] value,int offset,int count)
分配一个新的 String,它包含来自该字符数组参数一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被赋值,后续对字符数组的修改不会影响新创建的字符串。例如:
- char a[]={'H','e','l','l','o'};
- String sChar=new String(a,1,4);
- a[1]='s';
上述 sChar 变量的值是字符串"Hello"。该构造方法使用字符数组中的部分连续元素来创建字符串对象。offset 参数指定起始索引值,count 指定截取元素的个数。创建字符串对象后,即使在后面修改了 a 数组中第 2 个元素的值,对 sChar 的值也没有任何影响。
二、Java连接字符串
“+”运算符是最简单、最快捷,也是使用最多的字符串连接方式。在使用“+”运算符连接字符串和 int 型(或 double 型)数据时,“+”将 int(或 double)型数据自动转换成 String 类型。
在 Java 中,String 类的 concat() 方法实现了将一个字符串连接到另一个字符串的后面。concat() 方法语法格式如下:
- String info="三国演义、";
- info=info.concat("西游记、");
三、Java转换大小写(toLowerCase()和toUpperCase())
四、Java去除空格(trim())
使用 trim() 方法的示例如下:
纯文本复制
String str=" hello ";
System.out.println(str.length()); //输出 9
System.out.println(str.trim().length()); //输出 5
五、Java提取子字符串(substring())
1. substring(int beginIndex) 形式
2. substring(int beginIndex,int endIndex) 形式
注意:substring() 方法是按字符截取,而不是按字节截取。
六、Java分割字符串(spilt())
两种重载形式:
- str.split(String sign)
- str.split(String sign,int limit)
public static void main(String[] args)
{
String Colors="Red,Black,White,Yellow,Blue";
String[] arr1=Colors.split(","); //不限制元素个数
String[] arr2=Colors.split(",",3); //限制元素个数为3
System.out.println("所有颜色为:");
for(int i=0;i<arr1.length;i++)
{
System.out.println(arr1[i]);
}
System.out.println("前三个颜色为:");
for(int j=0;j<arr2.length;j++)
{
System.out.println(arr2[j]);
}
}
输出结果如下:
所有颜色为:
Red
Black
White
Yellow Blue
前三个颜色为:
Red
Black
White,Yellow,Blue
七、Java字符串的替换(replace()、replaceFirst()和replaceAll())
replace() 方法
replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下:
字符串.replace(String oldChar, String newChar)
replaceFirst() 方法
replaceFirst() 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串,其语法形式如下:
其中,regex 表示正则表达式;replacement 表示用于替换的字符串。例如:
字符串.replaceFirst(String regex, String replacement)
replaceAll() 方法
replaceAll() 方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串,其语法形式如下:
其中,regex 表示正则表达式;replacement 表示用于替换的字符串。例如:
字符串.replaceAll(String regex, String replacement)
八、Java字符串的比较(equals()、equalsIgnoreCase()和compareTo())
equals() 方法
equals() 方法将逐个地比较两个字符串的每个字符是否相同。对于字符的大小写,也在检查的范围之内。equals() 方法的语法格式如下:
字符串1.equals(字符串2); 例如:
- String str1="abc";
- String str2=new String("abc");
- String str3="ABC";
- System.out.println(str1.equals(str2)); //输出 true
- System.out.println(str1.equals(str3)); //输出 false
equalsIgnoreCase() 方法
equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同,唯一不同的是 equalsIgnoreCase() 比较时不区分大小写。
compareTo() 方法
compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值。compareTo() 方法的语法格式如下:
str.compareTo(String otherstr);
它会按字典顺序将 str 表示的字符序列与 otherstr 参数表示的字符序列进行比较。如果按字典顺序 str 位于 otherster 参数之前,比较结果为一个负整数;如果 str 位于 otherstr 之后,比较结果为一个正整数;如果两个字符串相等,则结果为 0。
- String str="A";
- String str1="a";
- System.out.println("str="+str);
- System.out.println("str1="+str1);
- System.out.println("str.compareTo(str1)的结果是:"+str.compareTo(str1));
str.compareTo(str1)的结果是:-32
九、Java查找字符串(indexOf()、lastlndexOf()和charAt())
1. indexOf() 方法
indexOf() 方法用于返回字符(串)在指 定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返回 -1。该方法主要有两种重载形式:
- str.indexOf(value)
- str.indexOf(value,int fromIndex)
2. lastlndexOf() 方法
lastIndexOf() 方法用于返回字符(串)在指定字符串中最后一次出现的索引位置,如果能找到则返回索引值,否则返回 -1。该方法也有两种重载形式:
- str.lastIndexOf(value)
- str.lastlndexOf(value, int fromIndex)
注意:lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。
3、根据索引查找 charAt()
String 类的 charAt() 方法可以在字符串内根据指定的索引查找字符,该方法的语法形式如下:
字符串名.charAt(索引值)
- String words="today,monday,sunday";
- System.out.println(words.charAt(0)); //结果:t