java语言开发String字符串操作大全
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());
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基础深度总结:抽象类和接口
推荐阅读
-
python开发之字符串string操作方法实例详解
-
python开发之字符串string操作方法实例详解
-
C/C++语言字符串操作总结大全(超详细)
-
[ Java学习基础 ] String字符串的基本操作
-
C语言字符串操作总结大全(超详细)
-
R语言开发之字符串操作基础了解下
-
【C++ 语言】C++字符串 ( string 类 | 创建方法 | 控制台输出 | 字符串操作 | 栈内存字符串对象 | string* )
-
Java开发人员必备的linux学习大全(用户管理,基本操作,mysql、jdk等开发软件的安装,图文详解)
-
java语言开发String字符串操作大全
-
python开发之字符串string操作方法实例详解