一. 字符串的获取
1, 获取字符串长度方法 length()
2, 获取字符串中的第 i 个字符方法 charAt(i) int length = str.length();
char ch = str.charAt(i); //i 为字符串的索引号, 可得到字符串任意位置处的字符, 保存到字符变量中
3, 获取指定位置的字符方法 getChars(4 个参数)
- char array[] = new char[80]; // 先要创建以一个容量足够大的 char 型数组, 数组名为 array
- str.getChars(indexBegin,indexEnd,array,arrayBegin);
indexBegin: 需要复制的字符串的开始索引
indexEnd: 需要复制的字符串的结束
array: 前面定义的 char 型数组的数组名
arrayBegin: 数组 array 开始存储的位置索引号
二. 字符串的比较
1. 不忽略字符串大小写情况下字符串的大小比较方法 compareTo(another str)
int result =str1.compareTo(str2)
输出三种比较结果: 若该字符串的 Unicode 值 <参数字符串的 Unicode 值, 结果返回一负整数; 若若该字符串的 Unicode 值 = 参数字符串的 Unicode 值, 结果返回 0; 若该字符串的 Unicode 值> 参数字符串的 Unicode 值, 结果返回一正整数.
2. 忽略字符串大小写情况下字符串的大小比较方法
int result = str1.compareTolgnoreCase(str2)
3. 不忽略字符串大小写情况下判别字符串相等的方法 eaquals(another str)
boolean result = str1.equals(str2);
且仅当 str1 和 str2 的长度相等, 且对应位置字符的 Unicode 编码完全相等, 返回 true, 否则返回 false
4. 忽略字符串大小写情况下判别字符串相等的方法 equalsIgnoreCase(another str)
boolean result =str1.equalslgnoreCase(str2)
三. 字符串相关装换方法
数据类型 | 字符串转换为其他数据类型的方法 | 其他数据转字符串方法 1 | 其他数据转字符串方法 2 |
boolean | Boolean.getBoolean(str) | String.valueOf([boolean]b) | Boolean.toString([boolean]b) |
int | Integer.parseInt(str) | String.valueOf([int] i ) | Int.toString([int] i) |
long | Long.parseLong(str) | String.valueOf([long] l) | Long.toString([long] l) |
float | Float.parseFloat(str) | String.valueOf([float] f) | Float.toString([float] f) |
double | double.parseFloat(str) | String.valueOf([double] d) | Double.toString([double] d) |
byte | Byte.parseByte(str) | String.valueOf([byte] bt) | Byte.toString([byte] bt) |
char | str.charAt(i) | String.valueOf([char] c) | Character.toString([char] c) |
- public class StringConvert {
- public static void main(String args[]){
- /*** 将字符串类型转换为其他数据类型 ***/
- boolean bool = Boolean.getBoolean("false"); // 字符串类型转换为布尔类型
- int integer = Integer.parseInt("20"); // 字符串类型转换为整形
- long LongInt = Long.parseLong("1024"); // 字符串类型转换为长整形
- float f = Float.parseFloat("1.521"); // 字符串类型转换为单精度浮点型
- double d = Double.parseDouble("1.52123");// 字符串类型转换为双精度浮点型
- byte bt = Byte.parseByte("200"); // 字符串类型转换为 byte 型
- char ch = "棋哥".charAt(0);
- /*** 将其他数据类型转换为字符串类型方法 1***/
- String strb1 = String.valueOf(bool); // 将布尔类型转换为字符串类型
- String stri1 = String.valueOf(integer); // 将整形转换为字符串类型
- String strl1 = String.valueOf(LongInt); // 将长整型转换为字符串类型
- String strf1 = String.valueOf(f); // 将单精度浮点型转换为字符串类型
- String strd1 = String.valueOf(d); // 将 double 类型转换为字符串类型
- String strbt1 = String.valueOf(bt); // 将 byte 转换为字符串类型
- String strch1 = String.valueOf(ch); // 将字符型转换为字符串类型
- }
- }
4. 查找字符串的方法
1. 查找字符串出现的位置
1.indexOf()方法
str.indexOf(ch); 返回指定字符在字符串中第一次出现位置的索引
str.indexOf(ch,fromIndex);// 包含 fromIndex 位置 , 返回指定索引位置之后第一次出现该字符的索引号
2.lastIndexOf()方法
str.lastIndexOf(ch); 返回字符最后一次出现位置的索引
str.lastIndexOf(ch,fromIndex): 返回指定索引位置之前最后一次出现该字符的索引
2. 查找字符串出现的位置
1.indexOf()方法
str.indexOf(str); 返回指定字符串在字符串中第一次出现位置的索引
str.indexOf(str,fromIndex);// 包含 fromIndex 位置 , 返回指定索引位置之后第一次出现该字符串的索引号
2.lastIndexOf()方法
str.lastIndexOf(str); 返回字符串最后一次出现位置的索引
str.lastIndexOf(str,fromIndex): 返回指定索引位置之前最后一次出现该字符串的索引
- // 字符与字符串查找
- public class StringSearchChar {
- public static void main(String args[]){
- String str = "How qi bocome handsome like qi ge"; // 定义一个长字符串
- 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("qi"); // 找到 "qi" 子字符串第一次出现位置的索引
- int index6 = str.indexOf("qi",5);// 找到索引 5 以后子字符串 "qi" 第一个出现位置所在索引
- System.out.println("子字符串 qi 第一次出现位置的索引号为:"+index5);
- System.out.println("索引 5 以后子字符串 qi 第一次出现位置的索引号为:"+index6);
- System.out.println("*****************");
- /***4,lastIndexOf()方法查找子字符串最后一次出现位置格式 1,2***/
- int index7 = str.lastIndexOf("qi");
- int index8 = str.lastIndexOf("qi",5);
- System.out.println("子字符串 qi 最后一次出现位置的索引号为:"+index7);
- System.out.println("索引号 5 以后子字符串 qi 最后一次出现位置的索引号为:"+index8);
- }
- }
五. 截取与拆分
1. 截取方法
1.substring 方法
- String result = str.substring(index);
- String result = str.substring(beginIndex,EndIndex);
2. 拆分方法
1.split()方法
String strArray[] = str.split(正则表达式); 拆分的结果保存到字符串数组中
- String strArray[] = str.split(正则表达式, limit);
- // 字符串截取与拆分
- 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");
- }
- }
- }
六. 替换与修改
(1)concat()方法合并字符串
String result = str1.concat(str2)// 将 str1 和 str2 合并
(2)toLowerCase()方法将字符全部转化为小写
String result = str.toLowerCase();
(3)toUpperCase()方法, 将字符串全部转化为大写
String result = str.toUpperCase();
(4)replaceAll(),replaceFirst()方法: 需要匹配正则表达式
- // 字符串替换与修改
- 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);
- }
- }
来源: http://www.bubuko.com/infodetail-3298273.html