关于String类的基本操作,可分为以下几类:
1、基本操作方法
2、字符串比较
3、字符串与其他数据类型之间的转换
4、字符与字符串的查找
5、字符串的截取与拆分
6、字符串的替换与修改
1.基本操作 (1)获取字符串长度length() int length = str.length();
(2)获取字符串中的第i个字符charAt(i) char ch = str.charAt(i); (3)获取指定位置的字符方法getChars(4个参数) char array[] = new char[80]; str.getChars(indexBegin,indexEnd,array,arrayBegin);
解释一下括号中四个参数的指向意义:
1、indexBegin:需要复制的字符串的开始索引
2、 indexEnd: 需要复制的字符串的结束索引,indexEnd-1
3、array: 前面定义的char型数组的数组名
4、arrayBegin:数组array开始存储的位置索引号
//String类基本操作方法 public class StringBasicOpeMethod { public static void main(String args[]){ String str = "求求你别学啦,再学就秃顶啦!"; //定义一个字符串 System.out.println(str); //输出字符串 /***1、length()方法***/ int length = str.length();//得到字符串长度 System.out.println("字符串的长度为:"+length); /***2、charAt()方法***/ char ch = str.charAt(7); //得到索引为7的字符 System.out.println("字符串中的第8个字符为:"+ch); /***3、getChars()方法***/ char chardst[] = new char[80]; //定义容量为80的字符数组,用于存储从字符串中提取出的一串字符 str.getChars(0,14,chardst,0); //System.out.println("字符数组中存放的内容为:"+chardst);//错误,输出的是编码 System.out.println(chardst); //**括号中不可带其他字符串 } }运行结果: 2、字符串比较 1.比较大小 (1)不忽略字符串大小写情况下字符串的大小比较方法compareTo(another str)
格式:int result = str1.compareTo(str2);(2) 忽略字符串大小写情况下字符串的大小比较方法compareTOIgnoreCase(another str)
格式:int result = str1.compareToIgnoreCase(str2);2.判断相等 (1)不忽略字符串大小写情况下判别字符串相等的方法eaquals(another str)
格式:boolean result = str1.equals(str2);(2) 忽略字符串大小写情况下判别字符串相等的方法equalsIgnoreCase(another str)
格式:boolean result = str1.equals(str2);code:
public class StringCompareMethod { public static void main(String args[]){ String str1 = "elapant"; String str2 = "ELEPANT"; //定义两个字符串 String str3 = "Apple"; String str4 = "apple"; /***1、compareTo方法***/ //不忽略字符串字符大小写 if(str1.compareTo(str2)>0){ System.out.println(str1+">"+str2); }else if(str1.compareTo(str2) == 0){ System.out.println(str1+"="+str2); }else{ System.out.println(str1+"="+str2); } /***2、compareToIgnoreCase()方法***/ //忽略字符串字符大小写 if(str1.compareToIgnoreCase(str2)>0){ System.out.println(str1+">"+str2); }else if(str1.compareToIgnoreCase(str2) == 0){ System.out.println(str1+"="+str2); }else{ System.out.println(str1+"<"+str2); } /***3、equals()方法***/ //不忽略字符串字符大小写 if(str3.equals(str4)){ System.out.println(str3+"="+str4); }else{ System.out.println(str3+"!="+str4); } /***4、equalsIgnoreCase()方法***/ //忽略字符串字符大小写 if(str3.equalsIgnoreCase(str4)){ System.out.println(str3+"="+str4); }else{ System.out.println(str3+"!="+str4); } } }代码截图:
3.字符串与其他数据类型的转换
4.字符串查找 (1)查找字符出现的位置
1、indexOf()方法 格式:1、str.indexOf(ch); 2、str.indexOf(ch,fromIndex); //包含fromIndex位置 格式1返回指定字符在字符串中第一次出现位置的索引 格式2返回指定索引位置之后第一次出现该字符的索引号 2、lastIndexOf()方法 格式:1、str.lastIndexOf(ch); 2、str.lastIndexOf(ch,fromIndex); 格式1返回指定字符在字符串中最后一次出现位置的索引 格式2返回指定索引位置之前最后一次出现该字符的索引号(2) 查找字符串出现的位置 1、indexOf()方法
格式:1、str.indexOf(str); 2、str.indexOf(str,fromIndex); 格式1返回指定子字符串在字符串中第一次出现位置的索引 格式2返回指定索引位置之前第一次出现该子字符串的索引号 2、lastIndexOf()方法 格式:1、str.lastIndexOf(str); 2、str.lastIndexOf(str,fromIndex); 格式1返回指定子字符串在字符串中最后一次出现位置的索引 格式2返回指定索引位置之前最后一次出现该子字符串的索引号code:
//字符与字符串查找 import java.*; public class haha { public static void main(String args[]){ String str = " how qu ni daye ge ji qu"; //定义一个长字符串 System.out.println("该字符串为 "+str); /***1、indexOf()方法查找字符首个出现位置格式1,2***/ int index1 = str.indexOf(" "); //找到第一个空格所在的索引 int index2 = str.indexOf(" ",4); //找到索引4以后的第一个空格所在索引 System.out.println("第一个空格所在索引为:"+index1); System.out.println("索引4以后的第一个空格所在索引为:"+index2); System.out.println("*****************"); /***2、lastIndexOf()方法查找字符最后出现位置格式1,2***/ int index3 = str.lastIndexOf(" "); //找到最后一个空格所在的索引 int index4 = str.lastIndexOf(" ",10);//找到索引10以后的第一个空格所在索引 System.out.println("最后一个空格所在索引为:"+index3); System.out.println("索引10以前最后一个空格所在索引为:"+index4); System.out.println("*****************"); /***3、indexOf()方法查找子字符串第一次出现位置格式1,2***/ int index5 = str.indexOf("qu"); //找到"qi"子字符串第一次出现位置的索引 int index6 = str.indexOf("qu",5);//找到索引5以后子字符串"qi"第一个出现位置所在索引 System.out.println("子字符串qu第一次出现位置的索引号为:"+index5); System.out.println("索引5以后子字符串qu第一次出现位置的索引号为:"+index6); System.out.println("*****************"); /***4、lastIndexOf()方法查找子字符串最后一次出现位置格式1,2***/ int index7 = str.lastIndexOf("qu"); int index8 = str.lastIndexOf("qu",5); System.out.println("子字符串qu最后一次出现位置的索引号为:"+index7); System.out.println("索引号5以后子字符串qu最后一次出现位置的索引号为:"+index8); } }5.截取和拆分 (1) 截取方法
1、substring()方法 格式1:String result = str.substring(index); 格式2:String result = str.substring(beginIndex,EndIndex);//实际索引号[beginIndex,EndIndex-1] 结果:截取出范围内的字符串(2)拆分方法
1、split()方法 格式1 :String strArray[] = str.split(正则表达式);// 拆分的结果保存到字符串数组中 格式2:String strArray[] = str.split(正则表达式,limit);code:
//字符串截取与拆分 public class StringCutAndSplit { public static void main(String args[]){ String str = "How to cut and split strings"; //定义字符串 System.out.println("字符串为:"+str); int length = str.length(); //获取字符串长度,保存到变量中 System.out.println("字符串长度为:"+length); /***1、substring()方法截取出第一个单词和最后一个单词***/ //首先配合indexOf()和lastIndexOf()方法找到第一个单词和最后一个单词前后空格的索引号 //第一个单词的左范围索引为0,最后一个单词的右范围索引为length-1 int firstIndex = str.indexOf(' '); //找到第一个空格所在位置 int lastIndex = str.lastIndexOf(' '); //找到最后一个空格所在位置 System.out.println("第一个空格的索引号为:"+firstIndex); System.out.println("最后一个空格的索引号为:"+lastIndex); //利用substring()方法根据第一个和最后一个单词的索引范围截取出第一个和最后一个单词 String firstWord = str.substring(0,firstIndex); //截取出第一个单词 String lastWord = str.substring(lastIndex+1,length);//截取出最后一个单词 System.out.println("第一个单词为:"+firstWord); System.out.println("最后一个单词为:"+lastWord); /***1、split()方法拆分出所有单词***/ String stringArray[] = str.split(" "); //根据空格要求拆分出所有单词保存到字符串数组中 System.out.println("拆分之后的各个词汇为:"); //输出提示信息 for(int i = 0;i<stringArray.length;i++){ System.out.print(stringArray[i]+"\t"); } } }6.修改或替换
(1)concat()方法:合并字符串
格式:String result = str1.concat(str2); //将str1和str2合并(2) toLowerCase()方法:将字符全部转化为小写
格式: String result = str.toLowerCase();(3) toUpperCase()方法: 将字符全部转化为大写
格式:String result = str.toUpperCase();(4)replaceAll()、replaceFirst()方法:需要匹配正则表达式
code:
//字符串替换与修改 public class StringFindandReplace { public static void main(String args[]){ String str1 = "vbasic"; String str2 = "Vbasic"; System.out.println("str1 = "+str1); System.out.println("str2 = "+str2); /***1、concat()方法将两字符串合并***/ String str3 = str1.concat(str2); System.out.println("str1和str2合并后的字符串为:"+str3); /***2、toLowerCase()方法将str1字符全部转换为小写***/ String str4 = str1.toLowerCase(); System.out.println("str1的字符全部转换为小写:"+str4); /***3、toUpperCase()方法将str2字符全部转换为大写***/ String str5 = str2.toUpperCase(); System.out.println("str2的字符全部转换为大写:"+str5); /***4、实现字符串的替换,原字符串内容不变***/ String str6 = str1.replaceFirst("(?i)VBASIC","C++"); String str7 = str2.replaceFirst("(?-i)VBASIC","C++"); System.out.println("替换后的str1:"+str6); System.out.println("替换后的str2:"+str7); } }结束语:程序员加油,!
