创建字符串
char[] helloArray = {'H','e','l','l','o'};
String helloString = new String(helloArray);
System.out.println(helloString); //Hello
字符串连接
字符串的连接可以通过concat()方法或"+"操作来链接。
System.out.println("我的名字是".concat("张三")); //concat()方法
System.out.println("我的名字是"+"张三");
字符串长度
System.out.println("langthTest".length()); //10
内置函数
- charAt(lindex):返回指定索引出的char值,索引范围0 ~ length()-1。
String str = "HELLO WORLD";
char charAt_result = str.charAt(6);
System.out.println(charAt_result); //w
- compareTo(Objact o) / compareTo(String str):用于指定字符串和另一对象的比较。
(1)、compareTo()方法中是从头开始,一个一个字符的比对原字符串和参数字符串中的字符,如果相同就下一个,直到字符出现不同(包括某一个字符串结束了)就计算这两个不同字符的ASCII码的差,作为返回值。(或是直到最后都相同就返回0)。
(2)、如果字符串前面的字符相同但字符串长度不同时返回字符串相差位数而并非 ASCII 码差值。
/*
*如果参数字符串等于此字符串,则返回值 0;
*如果此字符串按字典顺序小于字符串参数,则*返回一个小于 0 的值;
*如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。
*/
String str1 = "Strings";
String str2 = "Strings";
String str3 = "Strings123";
int compareTo_result = str1.compareTo(str2);
System.out.println(compareTo_result); //0
compareTo_result = str2.compareTo(str3);
System.out.println(compareTo_result); //-3
compareTo_result = str3.compareTo(str1);
System.out.println(compareTo_result); //3
- compareToIgnoreCase():按照字典顺序比较两个字符串。
String str1 = "Strings";
String str2 = "STRINGS";
System.out.println(str1.compareToIgnoreCase(str2)); //0
-
contentEquale()方法用于将此字符串与指定的StringBuffer比较。如果字符串与指定的StringBuffer表示相同的字符序列,则会返回true;否则返回false。
String str1 = "String1";
String str2 = "String2";
StringBuffer str3 = new StringBuffer("String1");
boolean res = str1.contentEquals(str3);
System.out.println(res); //true
res = str2.contentEquals(str3);
System.out.println(res); //false
copyValueOf(data,offset,count)返回指定数组中表示该字符串序列的String。
char[] str1 = {'H','e','l','l','o'};
String str2 = "";
str2 = str2.copyValueOf(str1);
System.out.println(str2); //Hello
str2 = str2.copyValueOf(str1,2,2);
System.out.println(str2); //ll
startsWith()/endsWith() 测试此字符是否是以指定字符串开头/结尾
System.out.println("hello".startsWith("he")); //true
System.out.println("hello".endsWith("lo")); //true
-
equals()方法用于将字符串于指定对象比较(如果给定对象与字符串相等,则返回true;否则返回false)
String str1 = new String("hello");
String str2 = str1;
String str3 = new String("hello");
System.out.println(str1.equals(str2)); //true
System.out.println(str1.equals(str3)); //true
-
getChars(开始索引,结束索引,目标数组,起始偏移量) 将字符从字符串复制到目标字符数组中
String str1 = new String("Hello World");
char[] str2 = new char[6];
str1.getChars(6,11,str2,0);
System.out.println(str2);
indexOf() 返回指定字符串在此字符串中从指定索引开始第一次出现处的索引
String str = "Hello World";
System.out.println(str.indexOf("o")); //4
System.out.println(str.indexOf("l",3)); //3
System.out.println(str.lastIndexOf("l")); //9 最后一次出现处的索引
- matches(regex) 用于检测字符串是否匹配给定的正则表达式(匹配成功返回true,否则返回false)
String str = "If we don't have the guts to try anything, what's the meaning of life.";
System.out.println(str.matches("(.*)anything(.*)")); //true
System.out.println(str.matches("(.*)anythings(.*)")); //false
-
replace(旧字符,新字符) 替换指定字符,并返回替换后的新的字符串
String str = new String("Hello World");
System.out.println(str.replace("World","Java")); //Hello Java
-
replaceAll(正则表达式,新字符) 替换所有匹配给定正则表达式的子字符串
String str = new String("a111b222c333d444");
System.out.println(str.replaceAll("[a-zA-Z]","Java")); //Java111Java222Java333Java444
-
split(正则,分割分数) 根据匹配给定的正则表达式来拆分字符串,返回字符串数组
String str = new String("aaa-bbb-ccc");
String[] new_str = str.split("-");
for(String retval:new_str){
System.out.println(retval);
//aaa
//bbb
//ccc
}
-
substring(起始索引,结束索引) 返回字符串的子字符串。
String str = "Hello World";
System.out.println(str.substring(6,11)); //World
-
toCharArray() //将字符串转换为字符数组
String str = "Hello World";
//System.out.println(str[0]); //因为该字符串不是数组类型,此处会报错
System.out.println(str.toCharArray()[0]); //H
-
toLowerCase()/toUpperCase() 将字符串所有字符转换为小写/大写
String str = new String("hello world");
System.out.println(str); //hello world
str = str.toUpperCase();
System.out.println(str); //HELLO WORLD
str = str.toLowerCase();
System.out.println(str); //hello world
-
trim() 用于删除字符串的头尾空白符
String str = new String(" hello world ");
System.out.println(str); // hello world
System.out.println(str.trim()); //hello world
-
valueOf() 返回指定类型的字符串形式
double d = 1100.00;
boolean b = true;
long l = 1234567890;
char[] arr = {'h','e','l','l','0'};
System.out.println(String.valueOf(d));
System.out.println(String.valueOf(b));
System.out.println(String.valueOf(l));
System.out.println(String.valueOf(arr));