Java ,使用String类处理定长的字符串(组合、转换、替换、分隔、字符串与数组之间的转换)
一、引言
文本处理,大数据以及机器学习中我们经常会涉及字符串的处理和文本文件输入输出的问题,如何实现这些功能呢?接下来用一个程序进行介绍。
二、函数功能介绍
函数 | 功能 |
---|---|
String1.equals(String2) | 字符串的比较 |
.length() | 获取字符串的长度,注意:获取数组的度长是.length,要区分开来 |
.charAt(index) | 提取字符串中指定下标的的字符 |
String1.concat(String2) | 两个字符串相连 |
.toLowerCase() | 将字符串中的大写字母转换为小写字母 |
.toUpperCase() | 将字符串中的小写字母转换为大写字母 |
.trim() | 返回去掉两端的空白字符之后的信字符 |
.replace(“A”,“B”) | A替换为B |
.replaceFirst(“A”,“B”) | 将字符串中的第一个A替换为B |
.split() | 分隔字符串,具体见下面的代码 |
.matches() | 匹配字符串,具体见下面的代码 |
.toCharArray() | 将字符串转换为数组 |
.getChars(a,b,array,c) | 将字符串转换成数组,并将字符串的a到b-1的子串复制到数组中从c开始的位置 |
String(char[]) | 将字符数组转换成一个字符串 |
valueOf(Char[]) | 将字符数组转换成一个字符串 |
三、代码及注释
/*使用String类处理定长的字符串(基础)
*(1)包含读取字符串的长度,字符串转换、连接
*(2)包含字符串的转换、替换、分隔、匹配
*(3)包含字符串与数组之间的转换
*anthor:杨陈菊
*日期:2018.10.27
*/
class zuhe{
public static void main(String[] args) {
String s1 = new String ("华为 MATE20");//构造一个字符串
String s2 = "手机";//另一种构造一个字符串的方法
char[] message={'G','O','O','D','!'};
String s3 = new String(message);//又一种构造一个字符串的方法
//获取字符串长度
int a = s1.length();
//获取字符串的指定下标出的字符
char b = s1.charAt(0);
//连接两个字符串构成一个新的字符串
String c = s1.concat(s2);
String d = c.concat(s3);
//输出
System.out.println("\"华为MATE20\"的长度为:"+a);
System.out.println("下标为0的字符为:"+b);
System.out.println("新的字符串:"+d);
//字符串转换、替换、分隔
//转换
String lower = s1.toLowerCase();//大写字母换成小写字母
System.out.println("\"华为 MATE20\"变成小写后:"+lower);
String upper = lower.toUpperCase();//小写字母换成大写字母
System.out.println("又变成大写后:"+upper);
String trim = s1.trim();//返回去掉两端的空白字符之后的信字符
System.out.println("去掉两端的空白字符之后:"+trim);
//替换,用replace()方法
String huawei = s1.replace("华为","HUAWEI");//华为替换成HUAWEI
System.out.println("华为替换成HUAWEI后:"+huawei);
String e = huawei.replaceFirst("E","V");//把第一个E换成V
System.out.println("把第一个E换成V后:"+e);
//分隔
String tokens ="富强.民主#文明,和谐";
String[] tokens2 = tokens.split("[.#,]");//正则表达式[?#,]指定的模式是指匹配?#,//这里每个字符都是分隔字符串的分隔符
System.out.println("\"富强.民主#文明,和谐\"分隔后:");
//System.out.println(tokens2.length);
for (int i = 0; i<tokens2.length; i++ ){
System.out.println(tokens2[i]);
}
//匹配,matches()方法
boolean pipei = "Java is fun".matches("Java.*");//.*字串与0个或多个字符相匹配
boolean pipei2 = "Java is cool".matches("Java.*");
boolean pipei3 = "Java is powerful".matches("Java.*");
System.out.println(pipei+"\n"+pipei2+"\n"+pipei3);
//字符串与数组之间的转换
//字符串转换成数组
System.out.println("字符串转换成数组:");
char[] ch ="自由平等公正法治".toCharArray();//.toCharArray()方法将字符串转换为数组
for (int i=0;i<ch.length;i++ ) {
System.out.println(ch[i]);
}
//另一种方法将字符串转换为数组
System.out.println("另一种方法将字符串转换为数组(使用getChars()方法)");
"爱国敬业诚信友善".getChars(0,4,ch,4);//字符串“爱国敬业诚信友善”转换成数组,并“爱国敬业诚信友善”的0到4-1的子串复制到ch中从4开始的位置
for (int i = 0;i<ch.length ;i++ ) {
System.out.println(ch[i]);
}
//字符数组转换成一个字符串
System.out.println("字符数组转换成一个字符串:");
//方法一,String(char[])方法
String str = new String(ch);
System.out.println(str);
//方法二,valueOf(Char[])方法
String str1 = String.valueOf(ch);
System.out.println(str1);
}
}