java字符串的常用方法
去除字符串对象两端的空白字符
还可以用替换方法(replace方法)实现
public class TrimExample {
public static void main(String[] args) {
String str = " Hello, World! ";
String trimmedStr = str.trim();
System.out.println("原始字符串:" + str);
System.out.println("去除两端空白后的字符串:" + trimmedStr);
}
}
判断字符串是否为空
方法一
str == null
方法二
str.isEmpty()
null和isEmpty的区别:
str == null判断字符串变量是否为null引用,即是否没有指向任何实际的字符串对象。
例如:String str = null;
,此时str == null
返回true。
isEmpty用于判断字符串是否为空字符串,即长度为 0。
例如:String str = "";
,此时str.isEmpty()
返回true。
isEmpty方法
小写字母转大写母
一、使用Character.toUpperCase()方法
char c = 'a';
char upper = Character.toUpperCase(c);
二、String.toUpperCase()方法(字符串中的小写字母转换为大写字母)
String lowerStr = "hello";
String upperStr = lowerStr.toUpperCase();
三、使用 ASCII 值进行转换
小写字母的 ASCII 值范围是 97(‘a’)到 122(‘z’),大写字母的 ASCII 值范围是 65(‘A’)到 90(‘Z’),二者相差 32。
char c = 'a';
char upper = (char)(c-32);
charAt方法
作用:返回指定索引处的字符(常用于字符串的遍历)
String str = "Hello";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
System.out.println(c);
}
字符串的截取
一、使用 substring 方法
1.substring(int beginIndex):
从指定索引beginIndex开始截取字符串到字符串末尾。
String str = "Hello World";
String subStr = str.substring(6);
System.out.println(subStr); // 输出 "World"
2.substring(int beginIndex, int endIndex):
从beginIndex开始截取到endIndex(不包含endIndex)位置的字符串。
String str = "Hello World";
String subStr = str.substring(0, 5);
System.out.println(subStr); // 输出 "Hello"
二、使用字符串分割结合特定索引
可以先将字符串按照特定字符分割成数组,然后根据索引获取所需部分。
String str = "Hello-World";
String[] parts = str.split("-");
String subStr = parts[1];
System.out.println(subStr); // 输出 "World"
注意点:
如果以点(.),乘号(*)等在正则表达式中具有特殊含义的字符分割时需要在这些符号前面加"\\"来转义.
判断字符是否为大写
char c = 'a';
boolean upperCase = Character.isUpperCase(c);
System.out.println(upperCase);//false
将不同类型的数据转换为字符串
int num = 10;
String str = String.valueOf(num);
System.out.println(str); // 字符串"10"
String.valueOf(要转换的数据)方法可以将各种基本数据类型(如int、long、double、boolean等)和对象转换为字符串表示形式。
判断字符串是否以指定的开头或结尾
判断前缀
public boolean startsWith(String prefix)
这个方法接收一个字符串参数,表示要判断的前缀,返回一个布尔值,表示当前字符串是否以指定的前缀开始.
public class StartWithExample {
public static void main(String[] args) {
String str = "Hello World";
boolean startsWithHello = str.startsWith("Hello");
System.out.println("字符串是否以'Hello'开头:" + startsWithHello);
}
}
判断结尾
public boolean endsWith(String prefix)
这个方法接收一个字符串参数,表示要判断的后缀,返回一个布尔值,表示当前字符串是否以指定的后缀结束.
求字符串的长度
用字符串对象调用length()方法.
String str4 = "Java String";
System.out.println("这个字符串的长度为:" + str4.length());
查找字符串中子字符串和字符的位置(不忽略大小写)
字符位置查找
public int indexOf(char ch)
:在字符串中查找指定字符首次出现的位置。
public int indexOf(char ch, int fromIndex)
:从指定索引位置开始,在字符串中查找指定字符首次出现的位置。
如果没有返回-1.
子字符串位置查找
public int indexOf(String str)
:在字符串中查找指定子字符串首次出现的位置(即第一个字符的位置)。
public int indexOf(String str, int fromIndex)
:从指定索引位置开始,在字符串中查找指定子字符串首次出现的位置。
如果没有返回-1.
字符串的替换
用字符串对象调用replace(被替换的字符串,新字符串)方法.
String str7 = "Hello World";
String replace = str7.replace("World", "Java");
System.out.println(replace);//Hello Java
被替换的字符串不止一个时,需要将这些要替换字符串存入数组后,不能直接传入数组要通过循环的方式传递.
String str8 = "Hello World";
//要替换字符串数组
String[] arr ={"el","or","ld"};
String replace1="";
for (int i1 = 0; i1 < arr.length; i1++) {
replace1 = str8.replace(arr[i1], "**");
str8 = replace1;
System.out.println(replace1);
}
//运行结果
/*H**lo World
H**lo W**ld
H**lo W*****/
如果被替换的字符串不存在,字符串内容不发生变化.
replace方法还可以用于删除字符串中的所有空格
String str9 = " Hello World, Hello Java ";
String replace2 = str9.replace(" ", "");
System.out.println(replace2);//HelloWorld,HelloJava
replaceAll 和 replace的区别:
replace(char oldChar, char newChar):
这个方法接受两个字符参数,分别表示要被替换的旧字符和用于替换的新字符。
例如:“Hello”.replace (‘l’, ‘w’),将字符串 “Hello” 中的字符 ‘l’ 替换为 ‘w’,结果为 “hewwo”。
replaceAll(String regex, String replacement):
这个方法接受两个参数,第一个参数是正则表达式(regex),用于指定要被替换的模式;第二个参数是用于替换的字符串。
例如:“Hello 123 World”.replaceAll (“\d+”, “XXX”),将字符串中的数字替换为 “XXX”,结果为 “Hello XXX World”。
字符串的比较
用字符串对象调用equals(要比较的字符串)方法.
String str12 = "java";
String str13 = "xxxx";
System.out.println(str12.equals(str13));//false
equals方法在比较时区分大小写.
String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equals(str2)); // 输出 false
忽略大小写比较字符串
用字符串对象调用equalsIgnoreCase(要比较的字符串)方法.
String str11 = "Java";
String str12 = "java";
System.out.println(str11.equalsIgnoreCase(str12));//true
判断一个字符串中是否包含另一个字符串
用字符串对象调用contains(要判断的字符串)方法.
String str14 = "Hello World";
String str15 = "World";
boolean contains = str14.contains(str15);
System.out.println("if have:"+contains);//true
contains方法主要用于判断一个集合中是否包含特定的元素。
将字符串转为字符数组
用字符串对象调用toCharArray()方法.
String str16 = "Java";
char[] charArray = str16.toCharArray();
System.out.println(Arrays.toString(charArray));//[J, a, v, a]
将字符串数组按指定分隔符拼接为字符串
用Striing类调用静态方法join
String[] arr1={"Apple","banana","orange"};
String separator=", ";
String join = String.join(separator, arr1);
System.out.println(join);//Apple, banana, orange
将字符串重复n次
用Striing对象调用repeat(重复次数)方法
String str20 = "Hello";
int times=3;
String repeat = str20.repeat(times);
System.out.println(repeat);//HelloHelloHello
字符数组转字符串
方法一(常用)
用String类构造方法,在创建字符串对象时将字符数组传入.
char[] charArray2 = {'j','a','v','a'};
String str23=new String(charArray2);
System.out.println(str23);//java
方法二
用Striing类调用静态方法copyValueOf(字符数组)
char[] charArray2 = {'j','a','v','a'};
String s4 = String.copyValueOf(charArray2);
System.out.println(s4);//java
大写字母转小写字母
一、使用Character.toLowerCase()方法
char c = 'A';
char upper = Character.toUpperCase(c);//a
二、String.toLowerCase()方法(字符串中大写字母转换为小写字母)
String lowerStr = "HAPPY";
String lowerCase = lowerStr.toLowerCase();//happy
三、使用 ASCII 值进行转换
小写字母的 ASCII 值范围是 97(‘a’)到 122(‘z’),大写字母的 ASCII 值范围是 65(‘A’)到 90(‘Z’),二者相差 32。
char c = 'A';
char upper = (char)(c+32);//a
字符串转整数
用Integer类调用静态方法parseInt(要转换的字符串)
String str25="12345";
int i1 = Integer.parseInt(str25);
System.out.println(i1+1);//12346
判断字符是否为小写
char c = 'a';
boolean lowerCase1= Character.isLowerCase(c);
System.out.println(lowerCase1);//true