欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java语言开发String字符串操作大全

程序员文章站 2022-03-25 15:02:25
String.charAt(int Index);...

1.创建字符串:

 1.String str = "码云腾"
	2.char[] helloArray = { 'h', 'e', 'l', 'l', 'o' };
	  String str = new String(helloArray); 

2.字符串长度:

String str="hello world";
int len=str.length(); 

3.连接字符串:

string1.concat(string2)
1."我得名字是:".concat("码云腾");
2."hello, " + "world" + “ !”;
俩种方式都可以 

4.创建格式化字符串:

 以下俩种方式都可以
	1.System.out.printf("浮点型变量的值为 " +
                 "%f, 整型变量的值为 " +
                 " %d, 字符串变量的值为 " +
                 "is %s", floatVar, intVar, stringVar);
    2.String fs;
   	  fs = String.format("浮点型变量的值为 " +
                  "%f, 整型变量的值为 " +
                  " %d, 字符串变量的值为 " +
                  " %s", floatVar, intVar, stringVar); 

详解请看:String.format()的详细用法.

5.返回指定索引处的 char 值:

语法:char charAt(int index)

 String s = "www.baidu.com";
        char result = s.charAt(6);
        System.out.println(result);
        //结果为 i 

6.把这个字符串和另一个对象比较:

语法:int compareTo(Object o) 或者 int compareTo(String str)

o:  要比较的对象
str: 要比较的字符串 

返回值:

返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符 和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。
如果参数字符串等于此字符串,则返回值 0;
如果此字符串小于字符串参数,则返回一个小于 0 的值;
如果此字符串大于字符串参数,则返回一个大于 0 的值。 

实例

 String str1 = "Strings";
        String str2 = "Strings";
        String str3 = "Strings123";
 		// 结果为 0
        int result = str1.compareTo( str2 );
        System.out.println(result);
      	// 结果为 -3
        result = str2.compareTo( str3 );
        System.out.println(result);
     	// 结果为 3
        result = str3.compareTo( str1 );
        System.out.println(result); 

7.按字典顺序比较两个字符串,不考虑大小写

语法:int compareToIgnoreCase(String str)

返回值

如果参数字符串等于此字符串,则返回值 0;
如果此字符串小于字符串参数,则返回一个小于 0 的值;
如果此字符串大于字符串参数,则返回一个大于 0 的值。 

实例

 String str1 = "STRINGS";
        String str2 = "Strings";
        String str3 = "Strings123";
		// 结果为0
        int result = str1.compareToIgnoreCase( str2 );
        System.out.println(result);
      	// 结果为 -3
        result = str2.compareToIgnoreCase( str3 );
        System.out.println(result);
     	// 结果为 3
        result = str3.compareToIgnoreCase( str1 );
        System.out.println(result); 

8.当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真

语法:boolean contentEquals(StringBuffer sb);

参数

sb: 要比较的StringBuffer字符串 

返回值

如字符串和指定的StringBuffer表示相同的字符序列,则返回true,否则false 

实例

 String str1 = "String1";
        String str2 = "String2";
        StringBuffer str3 = new StringBuffer( "String1");
		// true
        boolean  result = str1.contentEquals( str3 );
        System.out.println(result);
        // false
        result = str2.contentEquals( str3 );
        System.out.println(result); 

9.返回指定数组中表示该字符序列的 String

语法

static String copyValueOf(char[] data)
或者
public static String copyValueOf(char[] data, int offset, int count) 

参数

data: 字符数组
offset:子数组初始偏移量
count: 子数组长度,意思是从offset位开始截取 count 个字符 

返回值

返回指定数组中表示该字符序列的字符串 

实例

 char[] Str1 = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' };
        String Str2 = "";
 		// 结果为 hello world        
 		Str2 = Str2.copyValueOf( Str1 );
        System.out.println("返回结果:" + Str2);
 		// 结果为 llo wo 
        Str2 = Str2.copyValueOf( Str1, 2, 6 );
        System.out.println("返回结果:" + Str2); 

10.此字符串是否以指定的后缀结束

语法: boolean endsWith(String suffix)

参数

suffix -- 指定的后缀。 

返回值

如果参数表示的字符序列是此对象表示的字符序列的后缀,则返回 true;否则返回 false。注意,如果参数是空字符串,或者等于此 String 对象(用 equals(Object) 方法确定),则结果为 true。 

实例

 String Str = new String("菜鸟教程:www.runoob.com");
        boolean retVal;
 		// false
        retVal = Str.endsWith( "runoob" );
        System.out.println("返回值 = " + retVal );
 		// true 
        retVal = Str.endsWith( "com" );
        System.out.println("返回值 = " + retVal ); 

11.俩个字符串作比较

语法:boolean equals(Object anObject)

参数

anObject:与字符串比较的对象 

返回值

如果给定对象与字符串相等,则返回 true;否则返回 false。 

实例

 String Str1 = new String("runoob");
        String Str2 = Str1;
        String Str3 = new String("runoob");
        boolean retVal;
		// true
        retVal = Str1.equals( Str2 );
        System.out.println("返回值 = " + retVal );
		// true
        retVal = Str1.equals( Str3 );
        System.out.println("返回值 = " + retVal ); 

12.俩个字符串比较,不考虑大小写

语法:boolean equalsIgnoreCase(String anotherString);

参数

anotherString:与字符串进行比较的对象 

返回值

如果给定对象与字符串相等,则返回 true;否则返回 false。 

实例

 String Str1 = new String("runoob");
        String Str2 = Str1;
        String Str3 = new String("runoob");
        String Str4 = new String("RUNOOB");
        boolean retVal;
		// true
        retVal = Str1.equals( Str2 );
        System.out.println("返回值 = " + retVal );
		// false
        retVal = Str3.equals( Str4);
        System.out.println("返回值 = " + retVal );
		// true 
        retVal = Str1.equalsIgnoreCase( Str4 );
        System.out.println("返回值 = " + retVal ); 

13. 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

语法

public byte[] getBytes(String charsetName) throws UnsupportedEncodingException //指定字符集
或
public byte[] getBytes() //默认字符集 

参数

charsetName:支持的字符集名称。 

返回值

Byte数组 

实例

 String Str1 = new String("runoob");
        try{
        	// 返回值:[B@7852e922
            byte[] Str2 = Str1.getBytes();
            System.out.println("返回值:" + Str2 );
            // 返回值:[B@4e25154f
            Str2 = Str1.getBytes( "UTF-8" );
            System.out.println("返回值:" + Str2 );
            // 返回值:[B@70dea4e
            Str2 = Str1.getBytes( "ISO-8859-1" );
            System.out.println("返回值:" + Str2 );
        } catch ( UnsupportedEncodingException e){
            System.out.println("不支持的字符集");
        } 

14.将字符从此字符串复制到目标字符数组。

语法

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 

参数

srcBegin:字符串中要复制的第一个字符索引
srcEnd:字符串中要复制的最后一个字符索引
dst:目标数组
dstBegin:目标数组中的起始偏移量 

返回值

没有返回值,但会抛出 IndexOutOfBoundsException 异常。 

实例

 String Str1 = new String("www.runoob.com");
        char[] Str2 = new char[6];
		
        try {
        	// 拷贝的字符串为:runoob
            Str1.getChars(4, 10, Str2, 0);
            System.out.print("拷贝的字符串为:" );
            System.out.println(Str2 );
        } catch( Exception ex) {
            System.out.println("触发异常...");
        } 

15.返回此字符串的哈希码

字符串对象的哈希码根据以下公式计算:

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。空字符串的哈希值为 0。 

语法

int hashCode() 

参数

返回值

返回对象的哈希码 

实例

 // 	字符串哈希码为:321005537
	String Str = new String("www.runoob.com");
    System.out.println("字符串的哈希码为 :" + Str.hashCode() ); 

16.返回指定字符在此字符串中第一次出现处的索引。

语法

返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
public int indexOf(int ch)
 
返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
public int indexOf(int ch, int fromIndex)

返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str)

返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str, int fromIndex) 

参数

ch:字符,Unicode编码
fromIndex:开始搜索的索引位置,第一个字符是0,第二个是1,以此类推
str:要搜索的字符串 

返回值

查找的字符串或Unicode编码出现的位置 

实例

 String string = "aaa456ac";  
    //查找指定字符是在字符串中的下标。在则返回所在字符串下标;不在则返回-1.  
    System.out.println(string.indexOf("b")); // indexOf(String str); 返回结果:-1,"b"不存在  
 
    // 从第四个字符位置开始往后继续查找,包含当前位置  
    System.out.println(string.indexOf("a",3));//indexOf(String str, int fromIndex); 返回结果:6  
 
    //(与之前的差别:上面的参数是 String 类型,下面的参数是 int 类型)参考数据:a-97,b-98,c-99  
 
    // 从头开始查找是否存在指定的字符  
    System.out.println(string.indexOf(99));//indexOf(int ch);返回结果:7  
    System.out.println(string.indexOf('c'));//indexOf(int ch);返回结果:7  
 
    //从fromIndex查找ch,这个是字符型变量,不是字符串。字符a对应的数字就是97。  
    System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex); 返回结果:6  
    System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex); 返回结果:6 

17. 返回字符串对象的规范化表示形式。

语法

String intern() 

参数

返回值

一个字符串,内容与此字符串相同,但一定取自具有唯一字符串的池 

实例

 String Str1 = new String("www.baidu.com");
        String Str2 = new String("WWW.BAIDU.COM");

		// www.baidu.com
        System.out.print("规范表示:" );
        System.out.println(Str1.intern());
		
		// WWW.BAIDU.COM
        System.out.print("规范表示:" );
        System.out.println(Str2.intern()); 

java语言开发String字符串操作大全

18. 返回指定字符在此字符串中最后一次出现处的索引。

语法

返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
public int lastIndexOf(int ch)

返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索,如果此字符串中没有这样的字符,则返回 -1。
public int lastIndexOf(int ch, int fromIndex)

返回指定子字符串在此字符串中最右边出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
public int lastIndexOf(String str)

返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索,如果此字符串中没有这样的字符,则返回 -1。
public int lastIndexOf(String str, int fromIndex) 

参数

ch:字符
fromIndex: 开始搜索的索引位置
str: 要搜索的子字符串 

返回值

指定子字符串在字符串中第一次出现的位置 

实例

 String Str = new String("菜鸟教程:www.runoob.com");
        String SubStr1 = new String("runoob");
        String SubStr2 = new String("com");

        System.out.print("查找字符 o 最后出现的位置 :" );
        System.out.println(Str.lastIndexOf( 'o' )); //17
        System.out.print("从第14个位置查找字符 o 最后出现的位置 :" );
        System.out.println(Str.lastIndexOf( 'o', 14 )); //13
        System.out.print("子字符串 SubStr1 最后出现的位置:" );
        System.out.println( Str.lastIndexOf( SubStr1 )); //9
        System.out.print("从第十五个位置开始搜索子字符串 SubStr1最后出现的位置 :" );
        System.out.println( Str.lastIndexOf( SubStr1, 15 )); //9
        System.out.print("子字符串 SubStr2 最后出现的位置 :" );
        System.out.println(Str.lastIndexOf( SubStr2 )); //16 

19.用于检测字符串是否匹配给定的正则表达式。

调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同:

Pattern.matches( regex, str) 

语法

boolean matches(String regex) 

参数

regex:匹配字符串的正则表达式 

返回值

当字符串匹配给定的正则表达式时,为true 

实例

 String Str = new String("www.baidu.com");

        System.out.print("返回值 :" );
        System.out.println(Str.matches("(.*)baidu(.*)")); //true
        
        System.out.print("返回值 :" );
        System.out.println(Str.matches("(.*)google(.*)")); //false

        System.out.print("返回值 :" );
        System.out.println(Str.matches("www(.*)")); //true 

20.用于检测两个字符串在一个区域内是否相等

语法

public boolean regionMatches(int toffset,
                         String other,
                         int ooffset,
                         int len)
或者
public boolean regionMatches(boolean ignoreCase,
                         int toffset,
                         String other,
                         int ooffset,
                         int len) 

参数

ignoreCase: 如果为true,则比较时忽略大小写
toffset: 此字符串中子区域的偏移量
other: 字符串参数
ooffset: 字符串中子区域的偏移量
len: 要比较的字符数 

返回值

如果字符串指定的子区域匹配字符串参数的指定子区域,则返回true,否则返回false。是否完全匹配或者是否考虑大小写取决于ignoreCase参数。 

实例

 String Str1 = new String("www.baidua.com");
        String Str2 = new String("baidua");
        String Str3 = new String("BAIDUA");

		// true
        System.out.print("返回值 :" );
        System.out.println(Str1.regionMatches(4, Str2, 0, 5));
		
		// false
        System.out.print("返回值 :" );
        System.out.println(Str1.regionMatches(4, Str3, 0, 5));
		
		// true
        System.out.print("返回值 :" );
        System.out.println(Str1.regionMatches(true, 4, Str3, 0, 5)); 

21.通过用 newChar 字符替换字符串中出现的所有 searchChar 字符,并返回替换后的新字符串

语法

String replace(char searchChar, char newChar) 

参数

searchChar: 原字符
newChar: 新字符 

返回值

替换后生成的新字符串 

实例

 String Str = new String("Runoob");

		// RunTTb
        System.out.print("返回值 :" );
        System.out.println(Str.replace('o', 'T'));

		// RDnoob
        System.out.print("返回值 :" );
        System.out.println(Str.replace('u', 'D')); 

22.使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串

语法

String replaceAll(String regex, String replacement) 

参数

regex: 匹配此字符串的正则表达式
replacement: 用来替换每个匹配项的字符串 

返回值

成功则返回匹配的字符串,失败则返回原来的字符串 

实例

 String Str = new String("www.google.com");
        
		// baidu
        System.out.print("匹配成功返回值 :" );
        System.out.println(Str.replaceAll("(.*)google(.*)", "baidu" ));
        
        // www.google.com
		System.out.print("匹配失败返回值 :" );
        System.out.println(Str.replaceAll("(.*)taobao(.*)", "baidu" )); 

23.使用给定的参数 replacement 替换字符串第一个匹配给定的正则表达式的子字符串

语法

public String replaceFirst(String regex,
                       String replacement) 

参数

regex: 匹配此字符的正则表达式
replacement: 用来替换第一个匹配项的字符串 

返回值

成功则返回替换后的字符串,失败返回原字符串 

实例

 String Str = new String("hello baidu,I am from baidu。");

		// hello google, I am from baidu.
        System.out.print("返回值 :" );
        System.out.println(Str.replaceFirst("baidu", "google" ));
	
		// google
        System.out.print("返回值 :" );
        System.out.println(Str.replaceFirst("(.*)baidu(.*)", "google" )); 

24.根据匹配给定的正则表达式来拆分字符串

注意: . 、 $、 | 和 * 等转义字符,必须得加 \\ 。

注意多个分隔符,可以用 | 作为连字符
语法

String[] split(String regex, int limit) 

参数

regex: 正则表达式分隔符
limit: 分割的份数 

返回值

字符串数组 

实例

 String str = new String("Welcome-to-Baidu");
 
 		// - 分隔符返回值 :
		// Welcome
		// to
		// Baidu
        System.out.println("- 分隔符返回值 :" );
        for (String retval: str.split("-")){
            System.out.println(retval);
        }
 
 		// - 分隔符设置分割份数返回值 :
		// Welcome
		// to-Baidu
        System.out.println("");
        System.out.println("- 分隔符设置分割份数返回值 :" );
        for (String retval: str.split("-", 2)){
            System.out.println(retval);
        }
 
 		// 转义字符返回值 :
		// www
		// Baidu
		// com
        System.out.println("");
        String str2 = new String("www.baidu.com");
        System.out.println("转义字符返回值 :" );
        for (String retval: str2.split("\\.", 3)){
            System.out.println(retval);
        }
 
 		// 多个分隔符返回值 :
		// acount=? 
 		// uu =? 
 		// n=?
        System.out.println("");
        String str3 = new String("acount=? and uu =? or n=?");
        System.out.println("多个分隔符返回值 :" );
        for (String retval: str3.split("and|or")){
            System.out.println(retval);
        } 

25.用于检测字符串是否以指定的前缀开始

语法

boolean startsWith(String prefix, int toffset)
或
boolean startsWith(String prefix) 

参数

prefix: 前缀
toffset: 字符串开始查找的位置 

返回值

如果字符串以指定的前缀开始,则返回 true;否则返回 false。 

实例

 String Str = new String("www.baidu.com");
 
 		// true
        System.out.print("返回值 :" );
        System.out.println(Str.startsWith("www") );
 
		// false
        System.out.print("返回值 :" );
        System.out.println(Str.startsWith("baidu") );
 
 		// true
        System.out.print("返回值 :" );
        System.out.println(Str.startsWith("baidu", 4) ); 

26.返回一个新的字符序列,它是此序列的一个子序

语法

CharSequence subSequence(int beginIndex, int endIndex) 

参数

beginIndex: 起始索引(包括)
endIndex:结束索引(不包括) 

返回值

返回一个新的字符序列,他是此序列的子序列 

实例

 String Str = new String("www.baidu.com");

		// baidu
         System.out.print("返回值 :" );
         System.out.println(Str.subSequence(4, 9) ); 

27.截取字符串返回字符串的子字符串

语法

String substring(int beginIndex)
或
String substring(int beginIndex, int endIndex) 

参数

beginIndex: 起始索引(包括),索引从0开始 
endIndex: 结束索引(不包括) 

返回值

截取后新的字符串 

实例

 String Str = new String("www.baidu.com");
 
 		// baidu.com
        System.out.print("返回值 :" );
        System.out.println(Str.substring(4) );
 		
 		// baidu
        System.out.print("返回值 :" );
        System.out.println(Str.substring(4, 9) ); 

28.将字符串转换为字符数组

语法

char[] toCharArray() 

参数

返回值

字符数组 

实例

 String Str = new String("www.baidu.com");
		
		// 返回值:www.baidu.com
        System.out.print("返回值 :" );
        System.out.println( Str.toCharArray() ); 

29.将字符串转换为小写

语法

String toLowerCase()
或
String toLowerCase(Locale locale) 

参数

返回值

转换为小写的字符 

实例

 String Str = new String("WWW.BAIDU.COM");

		// www.baidu.com
        System.out.print("返回值 :" );
        System.out.println( Str.toLowerCase() ); 

30.将字符串小写字符转换为大写

语法

String toUpperCase()
或
String toUpperCase(Locale locale) 

参数

返回值

转化后的大写字符串 

实例

 String Str = new String("www.baidu.com");
		
		// WWW.BAIDU.COM
        System.out.print("返回值 :" );
        System.out.println( Str.toUpperCase() ); 

31.用于删除字符串的头尾空白符

语法

String trim() 

参数

返回值

删除头尾空白符后的字符串 

实例

 String Str = new String("    www.baidu.com    ");
        //    www.baidu.com
        System.out.print("原始值 :" );
        System.out.println( Str );


		// www.baidu.com
        System.out.print("删除头尾空白 :" );
        System.out.println( Str.trim() ); 

32.返回给定data type类型x参数的字符串表示形式

语法

valueOf(boolean b): 返回 boolean 参数的字符串表示形式。.

valueOf(char c): 返回 char 参数的字符串表示形式。

valueOf(char[] data): 返回 char 数组参数的字符串表示形式。

valueOf(char[] data, int offset, int count): 返回 char 数组参数的特定子数组的字符串表示形式。

valueOf(double d): 返回 double 参数的字符串表示形式。

valueOf(float f): 返回 float 参数的字符串表示形式。

valueOf(int i): 返回 int 参数的字符串表示形式。

valueOf(long l): 返回 long 参数的字符串表示形式。

valueOf(Object obj): 返回 Object 参数的字符串表示形式。 

参数

指定类型参数。 

返回值

删除头尾空白符的字符串 

实例

 double d = 1100.00;
        boolean b = true;
        long l = 1234567890;
        char[] arr = {'b', 'a', 'i', 'd', 'u'};
		
		// 返回值:1100.0
        System.out.println("返回值 : " + String.valueOf(d) );
        // true
        System.out.println("返回值 : " + String.valueOf(b) );
        // 1234567890
        System.out.println("返回值 : " + String.valueOf(l) );
        // baidu
        System.out.println("返回值 : " + String.valueOf(arr) ); 

33. 用于判断字符串中是否包含指定的字符或字符串

语法

boolean contains(CharSequence chars) 

参数

chars -- 要判断的字符或字符串 

返回值

如果包含指定的字符或字符串返回 true,否则返回 false。 

实例

 String str = "baidu";
	// true
	System.out.println(str.contains("bai"));
	// false
	System.out.println(str.contains("o"));
	// false
	System.out.println(str.contains("Bai")); 

34.用于判断字符串是否为空

语法

boolean isEmpty() 

参数

返回值

如果字符串为空返回 true,否则返回 false。
字符串通过 length() 方法计算字符串长度,如果返回 0,即为空字符串。 

实例

 String myStr1 = "Runoob";  
        String myStr2 = "";        // 空字符串
        String myStr3 = "    ";    // 多个空格,length() 不为 0 
		// false
        System.out.println("myStr1 是否为空:" + myStr1.isEmpty());
        // true
        System.out.println("myStr2 是否为空:" + myStr2.isEmpty());
        // 4
        System.out.println("myStr3 长度:" + myStr3.length());
        // false
        System.out.println("myStr3 是否为空:" + myStr3.isEmpty()); 

本文地址:https://blog.csdn.net/qq_38359685/article/details/108853928

相关标签: java基础 java