java字符串方法_Java字符串String类操作方法详细整理

关于String类的基本操作,可分为以下几类:

1、基本操作方法

2、字符串比较

3、字符串与其他数据类型之间的转换

4、字符与字符串的查找

5、字符串的截取与拆分

6、字符串的替换与修改

我觉得在整理到下面的内容之前需要给自己提的醒是关于字符串的操作方法我们是不需要像其他操作一样手动导包的,其String和StringBuffer等类封装在java.lang包中,我们直接调用字符串方法即可!

一、String基本操作方法

首先说一下基本操作方法,字符串的基本操作方法中包含以下几种:

(1)获取字符串长度length()

(2)获取字符串中的第i个字符charAt(i)

(3)获取指定位置的字符方法getChars(4个参数)

1、 获取字符串长度方法length()

格式:int length = str.length();

2、获取字符串中的第i个字符方法charAt(i)

格式:char ch = str.charAt(i);  //i为字符串的索引号,可得到字符串任意位置处的字符,保存到字符变量中

3、获取指定位置的字符方法getChars(4个参数)

格式:char array[] = new char[80];  //先要创建以一个容量足够大的char型数组,数组名为array

str.getChars(indexBegin,indexEnd,array,arrayBegin);

解释一下括号中四个参数的指向意义:

1、indexBegin:需要复制的字符串的开始索引

2、 indexEnd:    需要复制的字符串的结束索引,indexEnd-1

3、array:             前面定义的char型数组的数组名

4、arrayBegin:数组array开始存储的位置索引号

这样我们就可以将字符串中想要的范围内的字符都复制到字符数组中,将字符数组打印输出即可。

与getChars()类似的方法有一个getBytes(),两者使用上基本相同,只是getBytes()方法创建的是byte类型的数组,而byte编码是默认字符集编码,它是用编码表示的字符。

下面就上代码简单演示一下三种方法的用法:

1 //String类基本操作方法

2 public classStringBasicOpeMethod {3 public static voidmain(String args[]){4 String str = "如何才能变得像棋哥一样优秀?算了吧,憋吹牛逼!"; //定义一个字符串

5 System.out.println(str); //输出字符串

6 /***1、length()方法***/

7 int length = str.length();//得到字符串长度

8 System.out.println("字符串的长度为:"+length);9 /***2、charAt()方法***/

10 char ch = str.charAt(7); //得到索引为7的字符

11 System.out.println("字符串中的第8个字符为:"+ch);12 /***3、getChars()方法***/

13 char chardst[] = new char[80]; //定义容量为80的字符数组,用于存储从字符串中提取出的一串字符

14 str.getChars(0,14,chardst,0);15 //System.out.println("字符数组中存放的内容为:"+chardst);//错误,输出的是编码

16 System.out.println(chardst); //**括号中不可带其他字符串

17 }18 }

运行结果如下:

58d07bf107a7953850956f17b28519a8.png

二、字符串比较

我们知道,明确的数值之间可以很方便地进行比较,那么字符串该如何进行比较呢?字符串的比较是将两个字符串从左到右逐个字符逐个字符进行比较,比较的依据是当前字符的Uncode编码值,直到比较出两个不同字符的大小。

字符串比较也分为两大类:一类是字符串大小的比较,这样的比较有三种结果,大于、等于以及小于;还有一类比较方法就是比较两个字符串是否相等,这样产生的比较结果无非就两种,ture和false。

1、首先看一下第一种比较大小这类需求中的方法:

(1)不忽略字符串大小写情况下字符串的大小比较方法compareTo(another str)

格式:int result = str1.compareTo(str2);

输出三种比较结果:若该字符串的Unicode值参数字符串的Unicode值,结果返回一正整数。

(2) 忽略字符串大小写情况下字符串的大小比较方法compareTOIgnoreCase(another str)

格式:int result = str1.compareToIgnoreCase(str2);

在忽略字符串大小写情况下,返回三种比较结果:输出三种比较结果:若该字符串的Unicode值参数字符串的Unicode值,结果返回一正整数。

2、然后看一下第二种判别两种字符串是否相等(相等情况下必须保证二者长度相等)需求中的方法:

(1)不忽略字符串大小写情况下判别字符串相等的方法eaquals(another str)

格式:boolean result = str1.equals(str2);

当且仅当str1和str2的长度相等,且对应位置字符的Unicode编码完全相等,返回true,否则返回false

(2)   忽略字符串大小写情况下判别字符串相等的方法equalsIgnoreCase(another str)

格式:boolean result = str1.equals(str2);

demo如下:

1 public classStringCompareMethod {2 public static voidmain(String args[]){3 String str1 = "elapant";4 String str2 = "ELEPANT"; //定义两个字符串

5 String str3 = "Apple";6 String str4 = "apple";7 /***1、compareTo方法***/

8 //不忽略字符串字符大小写

9 if(str1.compareTo(str2)>0){10 System.out.println(str1+">"+str2);11 }else if(str1.compareTo(str2) == 0){12 System.out.println(str1+"="+str2);13 }else{14 System.out.println(str1+"="+str2);15 }16 /***2、compareToIgnoreCase()方法***/

17 //忽略字符串字符大小写

18 if(str1.compareToIgnoreCase(str2)>0){19 System.out.println(str1+">"+str2);20 }else if(str1.compareToIgnoreCase(str2) == 0){21 System.out.println(str1+"="+str2);22 }else{23 System.out.println(str1+"

26 //不忽略字符串字符大小写

27 if(str3.equals(str4)){28 System.out.println(str3+"="+str4);29 }else{30 System.out.println(str3+"!="+str4);31 }32 /***4、equalsIgnoreCase()方法***/

33 //忽略字符串字符大小写

34 if(str3.equalsIgnoreCase(str4)){35 System.out.println(str3+"="+str4);36 }else{37 System.out.println(str3+"!="+str4);38 }39 }40 }

运行结果如下:

ac6a9786ce97f3006a55df1720226fd9.png

三、字符串与其他数据类型的转换

有时候我们需要在字符串与其他数据类型之间做一个转换,例如将字符串数据变为整形数据,或者反过来将整形数据变为字符串类型数据,"20"是字符串,20就是整形数。我们都知道整形和浮点型之间可以利用强制类型转换和自动类型转换两种机制实现两者之间的转换,那么"20"和20这两种属于不同类型的数据就需要用到String类提供的数据类型转换方法了。

由于数据类型较多,因而转换使用的方法也比较多,在此我就用一个表格罗列一下:

数据类型

字符串转换为其他数据类型的方法

其它数据类型转换为字符串的方法1

其他数据类型转换为字符串的方法2

byte

Byte.parseByte(str)

String.valueOf([byte] bt)

Byte.toString([byte] bt)

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.parseDouble(str)

String.valueOf([double] d)

Double.toString([double] b)

char

str.charAt()

String.valueOf([char] c)

Character.toString([char] c)

boolean

Boolean.getBoolean(str)

String.valueOf([boolean] b)

Boolean.toString([boolean] b)

简单测试的小demo如下:

public classStringConvert {public static voidmain(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); //将字符型转换为字符串类型

}

}

四、字符串查找

我们有时候需要在一段很长的字符串中查找我们需要的其中一部分字符串或者某个字符,String类恰恰提供了相应的查找方法,这些方法返回的都是目标查找对象在字符串中的索引值,所以都是整形值。具体分类情况如下:

字符串查找无非分为两类:查找字符串和查找单个字符,而查找又可分为查找对象在字符串中第一次出现的位置和最后一次出现的位置,再扩展一步,我们可以缩小查找范围,在指定范围之内查找其第一次或最后一次出现的位置。

(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返回指定索引位置之前最后一次出现该子字符串的索引号

看代码:

//字符与字符串查找

public classStringSearchChar {public static voidmain(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);

}

}

结果截图如下:

71e20b88c4b3666f523099a4c7acdcb3.png

五、截取与拆分

这类方法是截取出一个长字符串中的一个子字符串或将字符串按照正则表达式的要求全部拆分保存到一个字符串数组中。具体方法如下所示:

(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);

代码示例如下:

//字符串截取与拆分

public classStringCutAndSplit {public static voidmain(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

System.out.print(stringArray[i]+"\t");

}

}

}

代码执行结果如下:

8affc64d7f91508edd1ba76ad5a2943b.png

六、替换或修改

终于到最后一类方法了,开心!!有时候我们需要对原字符串中的某些子字符串进行替换或修改,此时也需要String类提供的一些简单快捷好用的方法啦

(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 classStringFindandReplace {public static voidmain(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);

}

}

代码运行结果截图:

7e83e0ac99c238dda3014736db7f8815.png

结束语

参考原文:https://blog.csdn.net/sjq__python_web/article/details/80099454

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaString是用于表示字符串,它包含许多常用的方法来处理字符串,以下是一些常用的字符串方法及其返回值: 1. length()方法:返回字符串的长度,即包含的字符数。 2. charAt(int index)方法:返回字符串指定位置的字符。 3. substring(int beginIndex, int endIndex)方法:返回从指定位置开始到指定位置结束的子字符串,其beginIndex表示开始位置(包含),endIndex表示结束位置(不包含)。 4. indexOf(char ch)方法:返回指定字符在字符串第一次出现的位置,如果不存在则返回-1。 5. indexOf(String str)方法:返回指定字符串字符串第一次出现的位置,如果不存在则返回-1。 6. replace(char oldChar, char newChar)方法:用指定的新字符替换字符串所有的旧字符,并返回替换后的新字符串。 7. replaceAll(String regex, String replacement)方法:用指定的新字符串替换字符串符合正则表达式的所有子串,并返回替换后的新字符串。 8. toUpperCase()方法:将字符串的所有字母转换为大写字母,并返回新字符串。 9. toLowerCase()方法:将字符串的所有字母转换为小写字母,并返回新字符串。 10. trim()方法:去除字符串两端的空格,并返回新字符串。 以上这些方法String常用的一些字符串方法,能够满足大多数字符串操作的需求。 ### 回答2: JavaString是非常重要的一个,常用于存储和操作字符串,其字符串长度是一个基本概念。String提供了一些常用方法来获取字符串长度。 1. length()方法:该方法返回一个字符串的长度,即字符串字符的个数。例如: ```java String str = "Hello World!"; int len = str.length(); ``` 上面的代码,len的值为12,因为字符串一共有12个字符。 2. isEmpty()方法:该方法返回一个布尔值,判断一个字符串是否为空。如果一个字符串的长度为0,则认为它是空的。例如: ```java String str = ""; boolean isEmpty = str.isEmpty(); ``` 上面的代码,isEmpty的值为true,因为str是一个空字符串。 3. trim()方法:该方法去除字符串两端的空格,并返回去除空格后的字符串。例如: ```java String str = " Hello World! "; str = str.trim(); ``` 上面的代码,在执行str.trim()方法之后,str的值变为了"Hello World!",去除了两端的空格。 4. getBytes()方法:该方法返回一个字节数组,表示该字符串每个字符的字节编码。例如: ```java String str = "Hello World!"; byte[] bytes = str.getBytes(); ``` 上面的代码,bytes的长度为12,因为字符串一共有12个字符,每个字符占用1个字节。 5. length vs length():需要注意的是,length和length()虽然都可以用来获取字符串长度,但是它们的返回值型不同。length是一个数组的属性,返回该数组的长度;而length()是String方法,返回字符串的长度。因此,我们需要根据具体的情况选择使用哪个方法。 在实际开发,我们会频繁地使用到这些方法,进行字符串长度的计算和判断,从而达到我们想要的程序效果。 ### 回答3: Java字符串是一种非常常见的数据型,可以使用String来创建和处理字符串。其字符串长度是String的一个非常基本的方法,对于字符串的处理和操作都有着非常重要的意义。 字符串长度可以通过调用String的length()方法来获取。该方法返回的是一个整数值,表示该字符串字符的数量,包括空格和特殊字符。例如,对于下面的字符串String str = "Hello World!"; 调用str.length()方法将返回整数值12,它是该字符串字符的数量。如果该字符串为空字符串,即“”,那么调用该方法将返回整数值0。 在实际的开发字符串长度的获取非常常见,比如在字符串的截取、比较、连接等操作都需要用到字符串长度。另外,在一些具有字符个数限制的场景(如数据库的字段),该方法也可以用来判断字符串的长度是否符合规定。 除了length()方法,还有一个似的属性可以获取字符串的长度,就是String的length属性。该属性是一个final型的整数,通过直接访问该属性可以获取字符串的长度。例如: String str = "Hello World!"; int len = str.length; 调用str.length将返回整数值12,它等价于调用str.length()方法。不过,需要注意的是,该属性是final型的,即一旦获取了长度值,就不能再修改了。 因此,对于字符串的操作和处理,获取字符串长度是一项非常基本的操作。Java提供了String的length()方法和length属性来获取字符串的长度,能够满足我们大部分的需求。对于需要频繁使用的场景,也可以将获取到的长度值存储在变量,以便下次使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值