一、
编程时我们会遇到大量的字符串处理模块,Java对字符及字符串的处理主要用到String和StringBuffer类。
1、字符串的定义
直接定义字符串
String str = “HelloWorld";
或者:
String str;
str = "HelloWorld";
使用String类定义
在 Java 中每个双引号定义的字符串都是一个 String 类的对象。因此,可以通过使用 String 类的构造方法来创建字符串,该类位于 java.lang 包中,作用域是 final。
方法:
String(); //初始化一个空字符序列;
String(String orignal);
String str1 = new String("Hello Java");
String str2 = new String(str1);
String(char[]value) | String(char[]value, int offset, int count);
char a[] = {'J', 'a', 'v', 'a'};
String str1 = new String(a);
String str2 = new String(a, 1, 2);
新分配的字符串内容拷贝自数组a,后续对数组a操作并不影响新创建的字符串。
2、连接字符串
Java使用‘+’运算符简单快捷的实现字符串的拼接。在使用“+”运算符连接字符串和 int 型(或 double 型)数据时,“+”将 int(或 double)型数据自动转换成 String 类型。
例如:
public class Lession1{
public static void main(String [] args) {
String[] nameList = new String[]{"lili", "yoyo", "xixi", "yiyi"};
int [] ageList = {10, 6, 9, 12};
System.out.println("students info:");
for(int i = 0; i < 4; i++) {
String info = nameList[i] + "'s " + "age is "+ ageList[i];
System.out.println(info);
//System.out.println(nameList[i] + "'s " + "age is "+ ageList[i]);
}
System.out.println("end");
}
}
输出结果:
students info:
lili's age is 10
yoyo's age is 6
xixi's age is 9
yiyi's age is 12
end
concat()方法
将一个字符串连接到另一个字符串的后面。
语法格式如下:
字符串 1.concat(字符串 2);
public static void main(String [] args) {
String group = "students: ";
group = group.concat("lili, ");
group = group.concat("yoy.");
System.out.println(group);
}
输出结果:
students: lili, yoy.
3、String 内嵌方法:
1. 获取字符串长度:
语法格式:
str.length()
2. 将字符床字符全部大写
语法格式:
str.toUpperCase()
3. 将字符串字符全部小写
语法格式:
str.toLowerCase()
4. 去除空格
语法格式:
str.trim()
5. 提取字符串
语法格式:
str.substring(int beginIndex)
str.substring(int beginIndex, int endIndex)
String str = "我爱你中国“
String subStr = str.substring(2);
System.out.printlen(subStr);
输出:
你中国
6.分割字符串
语法格式:
str.split(String sign)
str.split(String sign,int limit)
public static void main(String [] args) {
String nameList = "lili, yoyo, nana, yiyi";
String[] nameArray1 = nameList.split(",");
String[] nameArray2 = nameList.split(",",3 );
System.out.println("name list1:");
for(int i = 0; i < nameArray1.length; i++)
System.out.println(nameArray1[i]);
System.out.println("name list2:");
for(int j = 0; j < nameArray2.length; j++)
System.out.println(nameArray2[j]);
}
输出结果:
name list1:
lili
yoyo
nana
yiyi
name list2:
lili
yoyo
nana, yiyi
7.字符串替换
语法格式:
str.replace(String oldChar, String newChar)
将目标字符串中的指定字符(串)替换成新的字符(串)
str.replaceFirst(String regex, String replacement)
将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串
例如:
String words="hello java,hello php";
String newStr=words.replaceFirst("hello","你好 ");
System.out.println(newStr); //输出:你好 java,hello php
str.replaceAll(String regex, String replacement)
将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串
例如:
String words="hello java,hello php";
String newStr=words.replaceAll("hello","你好 ");
System.out.println(newStr); //输出:你好 java,你好 php
8、字符串比较
逐个地比较两个字符串的每个字符是否相同。
语法格式:
str.equals(字符串2); //区分大小写 返回值:true | false
str.equalsIgnoreCase(字符串2); //不区分大小写 返回值:true | false
str.compareTo(String otherstr); //基于字符的Unicode值逐一比较 返回值:1 | 0 | -1
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
9、字符查找
语法格式:
str.indexOf(value)
str.indexOf(value,int fromIndex) //fromIndex - 查找的其实索引
返回字符所在的索引位置。