java字符串操作
Posted tongtong77
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java字符串操作相关的知识,希望对你有一定的参考价值。
一.字符串的获取
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]+" ");
}
}
}
六.替换与修改
(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);
}
}
以上是关于java字符串操作的主要内容,如果未能解决你的问题,请参考以下文章
java===java基础学习---字符串操作
Java学习之IO流(其他操作流 操作基本数据类型操作字节数组操作字符数组操作字符串)
java入门学习笔记之2(Java中的字符串操作)
Java 字符串常见的操作
java常见字符串的操作
java12-字符串操作类StringStringBufferStringBuilder