对核心类库string中的所有方法进行了总结
方法的总结
一 . 有获取功能的方法 :charAt() 返回指定位置的字符、length() 返回字符串长度、concat() 拼接
两个字符串、indexOf() 返回第一次出现该值的索引值、subString() 截取指定长度的字符串
二 . 有转换功能的方法 : toChar() 把字符串转化为装有字符的数组、 getBytes() 将字符串转成
软件默认的字符集、replace() 把目标字符转化为指定字符 、toUpper() 将字符串全转化为大写 、
toLower() 将字符串全转化为小写
三 . 有分割功能的方法 :split() 按照指定方法进行切割字符串
四 . 有判断功能的方法 :contain() 判断是否有指定的字符 、equals() 判断字符串内容是否相同 、
starsWith() 判断是否是以指定的字符开头 、endsWith()断是否是以指定的字符结尾、
以下是对String类的所有方法的总结
charAT()
/*charAt(int i) 方法用于返回 i 处的字符。
* 索引范围为从 0 到 length() - 1。
*/
String str = "abcdefg";
char str1 = str.charAt(2);
System.out.println(str1);
//返回值为 c
compareTo()
/*str1.compareTo(str2) 字符串比较 不忽略大小写的比较
* 按照字典顺序比较Unicode的值 str1与str2相等输出0 排在前面输出负整数 排在后面输出正整数
*/
String str1 = "abcde";
String str2 = "ABCDE";
int i = str1.compareTo(str2);
System.out.println(i);
输出值为32
compareToIgnoreCase()
/*str1.compareTOIgnoreCase((str2) 字符串比较 忽略大小写的比较
* 按照字典顺序比较Unicode的值 str1与str2相等输出0 排在前面输出负整数 排在后面输出正整数
*/
String str1 = "abcde";
String str2 = "ABCDE";
int i = str1.compareToIgnoreCase(str2);
System.out.println(i);
输出值为 0
concat()
/*concat() 字符串合并
*
*/
String str1 = "123";
String str2 = "456";
String str3 = str1.concat(str2);
System.out.print(str3);
输出的值 123456
contains()
/* contains(str) 当字符串里包含了str是返回true
*/
String str = "12345";
System.out.println(str.contains("1"));
System.out.println(str.contains("7"));
输出值为 true
false
contentEquals(
/* contentEquals()
* 这个方法也是比较字符串是否相等,但它是比较java.lang.CharSequence里的对象
*/
String str1 = "abc";
String str2 = "abc";
StringBuilder str3 = new StringBuilder("abc");
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
System.out.println(str1.contentEquals(str3));
输出 true
false
true
endsWith(
/* endsWith(string str) 判断该字符串是否是以 str 为结尾的方法
*
*/
String str1 = "asdfgh";
//System.out.println(str1);
System.out.println(str1.endsWith("h"));
System.out.println(str1.endsWith("m"));
输出 true
false
equals(
/*eaquals() 不忽略字符串大小写
*/
String str1 = "abcde";
String str2 = "ABCDE";
boolean i = str1.equals(str2);
System.out.println(i);
输出 false
equalsIgnoreCase(
/*equalsIgnoreCase() 忽略字符串大小写
*
*/
String str1 = "abcde";
String str2 = "ABCDE";
boolean i = str1.equalsIgnoreCase(str2);
System.out.println(i);
输出值 true
format(
/* format() 字符串初始化
* %s: 字符串类型,如:"ljq"
* %d: 整数类型(十进制),如:99
* %f: 浮点类型,如:99.99
* %%: 百分比类型,如:%
* %n: 换行符
*/
String str2 = String.format("%s", "馒头");
System.out.print(str2);
输出值为 馒头
getChars(
/*getChars(开始的位置,结束的位置,char的名字,char的位置)
* 获取指定位置的字符方法
*/
String str = "abcdefghijk";
char char1[] = new char[10];
str.getChars(0,6,char1,0);
System.out.println(char1);
}
输出值为 abcdef
indexOf(
/*indexOf() 查找字符串
*/
String str1 = "abcde";
String str2 = "d";
int i = str1.indexOf(str2);
System.out.println("第一次出现字符"+str2+"的位置是:"+i);
第一次出现字符d的位置是:3
/*index(str,i)i表示从下标i之后开始找
String str1 = "abcded";
String str2 = "d";
int i = str1.indexOf(str2,4);
输出值为5
intern()
/* intern()
* 这个方法是比较常量池与堆内存的数据的比较
*/
String str1 = "abc";
String str2 = "cba";
String str3 = "abccba";
String str4 = str1 + str2;
System.out.println(str3 == str4);
System.out.println(str3 == str4.intern());
输出 false
true
lastIndexOf(
/*lastIndexOf() 查找最后一次出现字符串的位置
*
*/
String str1 = "java1 java2 java3";
String str2 = "java";
int i = str1.lastIndexOf(str2);
System.out.println("最后一次出现字符"+str2+"的位置是:"+i);
最后一次出现字符java的位置是:12
length()
/*获取字符串长度方法length()
*/
String str = "abcdefg";
int str1 = str.length();
System.out.println(str1);
输出值为 7
lines()
String s1 = "hello\njava\rworld";
System.out.println(s1);
List lines = s1.lines().collect(Collectors.toList());
System.out.println(lines);
输出 hello
java
world
[hello, java, world]
repeat(
/* repeat(int i)
* 把目标字符串重复 i 次输出
*/
String s1 = "123 ";
String s2 = s1.repeat(3);
System.out.println(s2);
输出 123 123 123
replace(
/* replace(old char, new char) 替换方法
* 把字符串里的 old char 全部替换为 new char
*/
String str1 = "123123".replace("1","a");
System.out.println(str1);
输出值为 a23a23
replaceAll(
/* replaceAll("匹配字符串","指定字符串") 把目标值换为指定值
*
*/
String str1 = "abcdef";
String str2 = str1.replaceAll("abcdef","ssadas");
System.out.print(str2);
输出值为 ssadas
split()
/*split() 拆分方法
*
*/
String str1 = "0103050789";
String arr[] = str1.split("0");
for (int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
输出值为 1 3 5 789
startsWith(
/* startsWith(string str) 判断该字符串是否是以 str 为开头的方法
*
*/
String str1 = "asdfgh";
System.out.println(str1.startsWith("a"));
System.out.println(str1.startsWith("q"));
输出值为 true
false
strip()
/* strip()
* 这个方法和trim()方法相同,但strip()方法删除的是中文全角输入下的空格
*/
String str1 = "asdasd ";//半角输入
String str2 = "asdasd ";//全角输入
System.out.println(str1.trim().length());
System.out.println(str2.trim().length());
System.out.println(str2.strip().length());
输出 6
8
6 从输出的值可以看出trim()与strip()删除的的方向
stripLeading()
/* stripLeading()
* 这个方法能删除所有前面的空格
*/
String str1 = " 0123456789 ";
System.out.println(str1.stripLeading());
输出 0123456789
从结果看出只删除了前面的空格,后面的空格没有删
stripTrailing()
/* stripTrailing()
* 这个方法能删除所有尾随的空格
*/
String str1 = " 0123456789 ";
System.out.println(str1.stripTrailing());
输出 0123456789
从结果看出只删除了后面的空格,前面的空格没有删
subSequence(
/* subSequence(int beginIndex, int endIndex)
* 这个方法能生成一个新的字符串
*/
String str1 = "0123456789";
System.out.println(str1.substring(3, 7));
输出 3456
substring(
/*substring(开始,结束) 截取范围内的字符串
* 从结果看的出是前取后不取
*/
String str1 = "0123456789";
String i = str1.substring(2,6);
System.out.println("截取后为 "+i);
截取后为 2345
toCharArray()
/* toCharArray()
* 这个方法可以返回一个字符数组,数组中存放了字符串中的所有字符
*/
String str1 = "asdasd";
char[] arr = str1.toCharArray();
for (int i=0;i<arr.length;i++) {
System.out.print(arr[i]);
}
输出 asdasd
toLowerCase()
/* toLowerCase() 把字符转化为小写
*
*/
String str1 = "ABCDEF";
String str2 = str1.toLowerCase();
System.out.print(str2);
输出值为 abcdef
toString()
/* toString()
* 这个方法可以用来做数据转化
*/
String str1 = Double.toString(12.345);
System.out.println(str1);
输出 12.345
toUpperCase()
/* toUpperCase() 把字符转化为小写
*
*/
String str1 = "abcdef";
String str2 = str1.toUpperCase();
System.out.print(str2);
输出值为 ABCDEF
trim()
/* trim() 去掉字符串的左右空格的方法
*
*/
String str1 = " 123123 ";
System.out.println(str1);
System.out.println(str1.trim());
输出值为 123123
123123
valueOf(
/* value() 基本数据类型转换为字符串类型的方法
*
*/
String str1 = String.valueOf(123);
System.out.println(str1);
String str2 = String.valueOf(123.456);
System.out.println(str2);
输出 123
123.456
copyValueOf() 与 valueOf() 这两个方法在jdk的升级之后没有什么区别了
待完善:
这些方法以后有待我在日后学习中,学到了知识点更新:codePointAt()、codePointBefore()、codePointCount()、join()、matches()、replaceFirst()、split()、matches()、chars()、codePoint()、getBytes()、hashCode()