String常用方法
字符串是常量,内容是不可变的,如果内容发生改变,必然是产生了一个新的字符串。
一、字符串的创建
(1)创建一个空的字符串
String str1 = new String();
(2)根据字符数组,创建字符串
char[] chars = {'h', 'e', 'l', 'l', 'o'};
String str2 = new String(chars);
(3)根据字节数组,创建字符串
byte[] bytes = {97, 98, 99};
String str3 = new String(bytes);
(4)直接创建字符串
String str4 = "Java";
二、字符串的方法
(1)字符串的常量池
多处出现了内容相同的字符串,只创建一个,多处可以共享使用
(2)==运算符的含义
对于基本类型来说,==是进行数据值的判断
对于引用类型来说,==是进行地址值的判断
String str1 = "abc";
String str2 = "abc";
byte[] bytes = {97, 98, 99};
String str3 = new String(bytes); // abc
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
System.out.println(str2 == str3); // false(3)
(3)字符串中内容比较(equals)和(equalsIgnoreCase)
equals 两个字符串的比较
equalsIgnoreCase 两个字符串的比较(不区分大小)
String t1="Hello";
String t2="Hello world";
String t3="hello";
boolean a = t1.equals(t2);
boolean b = t1.equals(t3);
boolean c = t1.equalsIgnoreCase(t3);
System.out.println(a); // false
System.out.println(b); // false
System.out.println(c); // true
(4)字符串长度(length)
String str1="asdfghjkl";
int length = str1.length();// 9
(5)字符串拼接(concat)
字符串的后面继续拼接另一个字符串,得到新的字符串
String str1="asdfghjkl";
String s = str1.concat("sdfsdfdsg");
System.out.println(s); // asdfghjklsdfsdfdsg
(6)字符串索引位置(charAt)
获取字符串当中指定索引位置的单个字符
String str1="asdfghjkl";
char a = s.charAt(5);
System.out.println(a);// h
(7)字符串出现第一个位置(indexOf)
在字符串当中查找参数所出现的第一个位置,如果没有,返回-1
String str1="asdfghjkl";
int f = str1.indexOf('f');
System.out.println(f); // 3
(8)字符串的截取 substring
substring(int begin):从指定索引位置一直到末尾,得到的字符串
substring(int begin,int end):从指定的第一个索引,一直到第二个索引,截取到中间的字符串
String str1="asdfghjkl";
String s1 = str1.substring(3);
String s2 = str1.substring(3, 7);
System.out.println(s1); // fghjkl
System.out.println(s2); // fghj
(9)字符串转换为字符数组 (toCharArray)
将字符串转换成为对应的字符数组
String t1="Hello";
char[] chars = t1.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]); // H e l l o
}
System.out.println(chars.length); // 5
(10)字符串转换为字节数组(getBytes)
将字符串转换成为对应的字节数组
String t1="Hello";
byte[] bytes = t1.getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]); // 72 101 108 108 111
}
System.out.println(bytes.length); // 5
(11)字符串替换 (replace)
replace(charSequence target,charSequence replacement):字符串内容替换,得到替换之后的新字符串
target:字符串想要被替换的内容
replacement:字符串替换的内容
String str3 = "How do you do?";
String str4 = str3.replace("o", "*");
System.out.println(str3); // How do you do?
System.out.println(str4); // H*w d* y*u d*?
(12)字符串分割(split)
public String[] split(String regex):根据参数作为标准,将字符串切割为若干个部分
String str1="aaa,bbb,ccc";
String[] split = str1.split(",");
for (String s : split) {
System.out.println(s); // aaa bbb ccc
}
*注意:英文句点切割,必须写成字符串"\ \."才行,不然结果不显示内容
String str2="AAA.BBB.CCC";
String[] split1 = str2.split("\\.");
for (String s1 : split1) {
System.out.println(s1); // AAA BBB CCC
}
(13)字符串比较(compareTo和compareTolgnore)
compareTo 该方法是对字符串内容按字典顺序进行大小比较,通过返回的整数值指明当前字符串与参数字符串的大小关系,如果当前对象比参数大则返回正整数,反之返回负整数,相等返回0.
compareTolgnore与上述方法相同,但是忽略大小写。
String str1="abc";
String str2="ABC";
int i = str2.compareTo(str1);
int j = str1.compareToIgnoreCase(str2);
System.out.println(i); // 32
System.out.println(j); // 0
(14)字符的大小写转换(toLowerCase和toUpperCase)
toLowerCase():返回当前字符串中的所有字符转换成小写后的新串
toUpperCase():返回当前字符串中的所有的字符转换成大写后的新串
String str1="asdfg";
String str2="ASDFG";
System.out.println(str1.toUpperCase()); // ASDFG
System.out.println(str2.toLowerCase()); // asdfg
(15)去除字符串首尾空格(trim)
去除字符串两端的空格,中间空格不做处理
String str1=" asd ";
System.out.println(str1.length()); // 5
System.out.println(str1.trim().length()); // 3
(16)字符串的开头和结尾 (endWith和statWith)
字符串中判断是否以某个字符串开头和判断字符串是不是以某个字符串结尾,一般在过滤条件中应用。
String str1=" asd ";
System.out.println(str1.length()); // true
System.out.println(str1.trim().length()); // false
(17) 字符串包含参数(contains)
判断一个字符串中是否包含参数,返回的是boolean值
String str1="asdsfdffg";
System.out.println(str1.contains("d")); // true
(18) 基本类型转换为字符串(valueof())
static String valueOf(char data[])
static String valueOf(char data[], int offset, int count)
static String valueOf(boolean b)
static String valueOf(char c)
static String valueOf(int i)
static String valueOf(long l)
static String valueOf(float f)
static String valueOf(double d)
int a=12;
String str1=String.valueOf(a);
System.out.println(str1);
(19)字符串转化为基本数据类型(parse)
public static byte parseByte(String s)
public static short parseShort(String s)
public static short parseInt(String s)
public static long parseLong(String s)
public static float parseFloat(String s)
public static double parseDouble(String s)
String str1="12";
int a=Integer.parseInt(str1);
System.out.println(a); //12