《java中String类,很常用啊》

 

String类
Java语言中的字符串属于String类。虽然有其它方法表示字符串(如字符数组),但Java使用String类作为字符串的标准格式。Java编译器把字符串转换成String对象。String对象一旦被创建了,就不能被改变。如果需要进行大量的字符串操作,应该使用StringBuffer类或者字符数组,最终结果可以被转换成String格式。

(1)创建字符串
创建字符串的方法有多种方式,通常我们用String类的构造器来建立字符串。表6.2列出了String类的构造器及其简要说明。

表7.2 String类构造器概要

构造器
说明

String( )
初始化一个新的String对象,使其包含一个空字符串

String(char[ ] value )
分配一个新的String对象,使它代表字符数组参数包含的字符序列

String(char[ ] valu, int offset,int count)
分配一个新的String对象,使它包含来自字符数组参数中子数组的字符

String(Stringvalue )
初始化一个新的String对象,使其包含和参数字符串相同的字符序列

String(StringBufferbuffer )
初始化一个新的String对象,它包含字符串缓冲区参数中的字符序列


【例7.1】使用多种方法创建一个字符串并输出字符串内容。

public class StrOutput {
public static void main(Sring[] args) {
//将字符串常量作为String对象对待,实际上是将一个String对象赋值给另一个
String s1 = "Hello,java!";
//声明一个字符串,然后为其赋值
String s2;
s2 = "Hello,java!";
//使用String类的构造器中的一个。创建一个空字符串,然后赋值给它
String s3 = new String( );
S3 = "Hello,java!";
//将字符串直接传递给String类构造器来创建新的字符串
String s4 = new String("Hello,java!");
//使用String类的构造器中的一个。
//通过创建字符数组传递给String类构造器来创建新的字符串
Char c1[ ] = { ' H', ' i', ' , ' , 'j', 'a', 'v', 'a'};
String s5 = new String(c1 );
//将字符数组子集传递给String类构造器来创建新的字符串
String s6 = new String(c1,0,2 );
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
System.out.println(s5);
System.out.println(s6);
}
}

运行结果:

C:\>java StrOutput
Hello,java!
Hello,java!
Hello,java!
Hello,java!
Hi,java
Hi
(2)字符串的操作

Java语言提供了多种处理字符串的方法。表6.3列出了String类常用的方法。

表7.3 String类的常用方法

方法
说明

char charAt(int index)
获取给定的Index处的字符

int compareTo(String anotherString)
按照字典的方式比较两个字符串

int compareToIgnoreCase(String str)
按照字典的方式比较两个字符串,忽略大小写

String concat(String str )
将给定的字符串连接到这个字符串的末尾

static String copyValueOf(char[ ] data)
创建一个和给定字符数组相同的String对象

static String copyValueOf(char[ ]data ,int offset,int count)
使用偏移量,创建一个和给定字符数组相同的String对象

boolean equals(Object anObject)
将这个String对象和另一个对象String进行比较

boolean equalsIgnoreCase(Sting anotherString)
将这个String对象和另一个对象String进行比较,忽略大小写

void getChars(getChars(int strbegin,int strend,char[ ] data,int offset)
将这个字符串的字符拷贝到目的数组

int indexOf(int char)
产生这个字符串中出现给定字符的第一个位置的索引

int indexOf(int ch,int fromIndex)
从给定的索引处开始,产生这个字符串中出现给定字符的第一个位置的索引

int indexOf(String str)
产生这个字符串中出现给定子字符的第一个位置的索引

int indexOf(String str,int fromIndex)
从给定的索引处开始,产生这个字符串中出现给定子字符的第一个位置的索引

int length( )
产生这个字符串的长度

boolean regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len)
检查两个字符串区域是否相等,允许忽略大小写

String replace(char oldChar,char newChar)
通过将这个字符串中的odChar字符转换为newChar字符来创建一个新字符串

boolean starsWith(String prefix)
检查这个字符串是否以给定的前缀开头

boolean starsWith(String prefix,int toffset)
从给定的索引处开头,检查这个字符串是否以给定的前缀开头

String substring(int strbegin)
产生一个新字符串,它是这个字符串的子字符串

String substring(int strbegin,int strend)
产生一个新字符串,它是这个字符串的子字符串,允许指定结尾处的索引

char[ ] toCharArray( )
将这个字符串转换为新的字符数组

String toLowerCase( )
将这个String对象中的所有字符变为小写

String toString( )
返回这个对象(它已经是一个字符串)

String toUpperCase( )
将这个String对象中的所有字符变为大写

String trim( )
去掉字符串开头和结尾的空格

static String valueOf(int i)
将int参数转化为字符串返回。该方法有很多重载方法,用来将基本数据类型转化为字符串。如:

static String valueOf(float f),static String valueOf(long l)等

 

下面结合常用的方法,介绍几种典型的字符串操作。

①字符串的比较

Java语言提供了四种字符串的比较方法,这些方法有些类似于操作符。例如,可以使用equals、equalsIgnoreCase、regionMatches和compareTo方法来实现对字符串的比较。调用形式如下:

s1.equals(s2) ----- 如果s1等于s2,返回true,否则为false。

s1. equalsIgnoreCase (s2) ----- 如果s1等于s2,返回true,否则为false,忽略大小写。

s1. regionMatches(boolean ignoreCase,int toffset,s2,int ooffset,int len ) ----- 如果s1和 s2的子串相等,返回true,否则为false。其中,ignoreCase为忽略大小写设置,true为忽略大小写,false为不忽略大小写,toffset确定s1的起始偏移量,ooffset确定s2的起始偏移量,len确定子串的长度。

s1. compareTo (s2) -----如果s1<s2,则返回小于0的值;如果s1=s2,则返回0;如果s1>s2,则返回大于0的值

【例7.2】比较字符串。

public class StrCompare {

public static void main(Sring[] args) {

String s1="aaaa";

String s2="aaaa";

String s3="AAAA";

String s4="bcd";

if (s1.equals(s2)) {

System.out.println("s1==s2");

}

else {

System.out.println("s1!=s2");

}

if (s1.equalsIgnoreCase(s3)) {

System.out.println(" s1= =s3 when ignoring case");

}

else {

System.out.println(" s1!=s3 when ignoring case");

}

if (s1.regionMatches(true,0,s3,1,3)) {

System.out.println(" s1= =s3 when ignoring case");

}

else {

System.out.println(" s1!=s3 when ignoring case");

}

if (s1.regionMatches(false,0,s3,1,3)) {

System.out.println(" s1= =s3 when not ignoring case");

}

else {

System.out.println("s1!=s3 when not ignoring case");

}

if (s1.compareTo(s4)<0) {

System.out.println(" s1<s4");

}

else if (s1.compareTo(s4)= =0){

System.out.println("s1= =s4");

}

else{

System.out.println("s1>s4");

}

}

}

运行结果:

C:\>java StrCompare

s1= =s2

s1= =s3 when ignoring case

s1= =s3 when ignoring case

s1!= =s3 when not ignoring case

s1<s4

②求字符串长度

使用String类的length方法,调用形式如下:

s1.length( ) ----- 返回s1的长度,其类型为int。

【例7.3】求指定字符串的长度。

public class StrLength

{public static void main(Sring[] args)

{String s1="Hello,Java!";

int i=s1.length();

System.out.println("字符串s1长度为"+i);

}

}

运行结果:

C:\>java StrLength

字符串s1长度为11

③连接字符串

可以使用两种方法将字符串连接起来:+操作符、用String类的concat方法。Concat方法的调用形式如下:

s1.concat(s2) ----- 将两个字符串连接起来。

s1.concat(“字符串常量”) ----- 将字符串和字符串常量连接起来。

【例7.4】使用+和concat方法创建同一个字符串。

public class StrConcat

{public static void main(Sring[] args)

{String s1="Hello";

String s2=s1+",";

String s3=s2.concat(" Java");!

String s4=new String(" ! ");

String s5=s4.concat(s4);

System.out.println(" 连接而成的字符串是"+s5);

}

}

运行结果:

C:\>java StrConcat

连接而成的字符串是Hello,Java!

④拷贝字符串

可以有四种方法将一个字符串复制到另一个字符数组或String对象中:copyValueOf、getChars、toCharArray、substring。调用形式:

s1.copyValueOf(data) ----- 将数组data中的内容全部拷贝到字符串中。

s1.copyValueOf(data,int offset,int count) ----- 将数组data中以offset起始,长度为count的内容拷贝到字符串中。

s1.getChars(int strbegin,int strend, data,int offset) ----- 将s1的全部或部分内容拷贝到数组data中。其中,strbegin为字符的起始,strend 为字符的终止,offset为字符数组的起始。

data=s1.toCharArray( ) ----- 将s1中的全部内容拷贝到一个字符数组data中。

s2=s1.substring(int strbegin) ----- 将s1中以stregin起始的内容拷贝到s2中。

s2=s1.substring(int strbegin,int strend) ----- 将s1中以stregin起始,以strend结束之间的内容拷贝到s2中。

【例7.5】拷贝字符串。

public class StrCopy

{public static void main(Sring[] args)

{

String s1=new String( );

char data[ ]={ 'a', 'b', 'c', 'd', 'e', 'f'};

s1=s1.copyValueOf(data);

System.out.println(" s1="+s1);

s1=s1.copyValueOf(data,2,3);

System.out.println(" s1="+s1);

s1.getChars(1,2, data,0)

System.out.println(" data="+data);

data=s1. toCharArray( );

System.out.println(" data="+data);

String s2=new String( );

String s3=new String( );

s2=s1.substring(0);

System.out.println(" s2="+s2);

s3= s1.substring(1,2);

System.out.println(" s3="+s3);

}

}

运行结果:

C:\>java StrCopy

s1=abcdef

s2=cde

data=decdef

data=cde

s2=cde

s3=de

⑤在字符串中查找字符和子串

在字符串中查找字符和子串,确定它们的位置,有几种常用的方法:charAt、indexOf、lastIndexOf。调用形式如下:

s1.chatAt(int index)--------返回s1中index所对应的字符。其中,index是下标号。

s1. indexOf (int char)--------返回s1中字符char在字符串中第一次出现的位置。

s1. lastIndexOf (int char)--------返回s1中字符char在字符串中最后一次出现的位置。

s1. indexOf (s2)--------返回s2在s1中第一次出现的位置。

s1. lastIndexOf (s2)--------返回s2在s1中最后一次出现的位置。

【例7.6】查找字符和子串。

public class StrSearch

{public static void main(Sring[] args)

{

String s1="Javav";

char c=s1.charAt(2);

System.out.println("c=",+c);

int i=s1.indexOf('a');

System.out.println("fistchar=",+i);

int j=s1.lastIndexOf('a');

System.out.println("lastchar=",+j);

i= s1.indexOf("av");

System.out.println("fiststring=",+i);

j=s1.lastIndexOf("av");

System.out.println("laststring=",+j);

}

}

运行结果:

C:\>java StrSearch

c=v

firstchar=1

lastchar=3

firststring=1

laststring=3

⑥修改字符串

修改字符串的常用方法有:replace、toLowerCase、toUpperCase、trim。调用形式如下:

s1.replace(oldchar,newchar)--------用新字符newchar替代旧字符oldchar,若指定字符不存在,则不替代。

s1.toLowerCase( )--------将s1中的所有大写字母转换为小写字母。

s1.toUpperCase( )-------- 将s1中的所有小写字母转换为大写字母。

s1.trim( )--------删除s1中的首、尾空格。

【例7.7】修改字符串。

public class StrModify

{public static void main(Sring[] args)

{

String s1="Java";

s1=s1.replae('a', 'b');

System.out.println("s1=",+s1);

String s2=s1.toLowerCase( );

String s3=s1. toUpperCase ( );

System.out.println("s2=",+s2);

System.out.println("s3=",+s3);

s2= s1.trim( );

System.out.println("s2=",+s2);

}

}

运行结果:

C:\>java StrModify

s1= Jbvb

s2= jbvb

s3= JBVB

s2= jbvb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaString提供了许多常用的方法,用于处理字符串。以下是一些常见的String方法: 1. `length()`:返回字符串的长度。 2. `charAt(int index)`:返回指定索引位置的字符。 3. `substring(int beginIndex)`:返回从指定索引位置开始到字符串末尾的子字符串。 4. `substring(int beginIndex, int endIndex)`:返回从指定的开始索引到结束索引之间的子字符串。 5. `toLowerCase()`:将字符串的所有字符转换为小写。 6. `toUpperCase()`:将字符串的所有字符转换为大写。 7. `trim()`:去除字符串两端的空格。 8. `startsWith(String prefix)`:检查字符串是否以指定的前缀开头。 9. `endsWith(String suffix)`:检查字符串是否以指定的后缀结尾。 10. `contains(CharSequence sequence)`:检查字符串是否包含指定的字符序列。 11. `equals(Object obj)`:比较字符串是否相等。注意要使用`equals`方法比较字符串,而不是使用`==`运算符。 12. `equalsIgnoreCase(String anotherString)`:忽略大小写比较字符串是否相等。 13. `indexOf(int ch)`:返回指定字符在字符串第一次出现的索引位置。 14. `lastIndexOf(int ch)`:返回指定字符在字符串最后一次出现的索引位置。 15. `replace(char oldChar, char newChar)`:将字符串的所有旧字符替换为新字符。 16. `replaceAll(String regex, String replacement)`:使用新字符串替换字符串的所有匹配正则表达式的子字符串。 17. `split(String regex)`:根据指定的正则表达式将字符串拆分为字符串数组。 18. `startsWith(String prefix, int offset)`:从指定索引位置开始检查字符串是否以指定的前缀开头。 19. `endsWith(String suffix)`:从指定索引位置开始检查字符串是否以指定的后缀结尾。 20. `isEmpty()`:检查字符串是否为空。 这些只是String一部分常用的方法,还有其他更多方法可用于字符串的操作和处理。你可以根据具体的需求选择适合的方法来操作字符串。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值