- String构造方法中引用byte数字只需在括号内写入byte数组名字加数组下标和长度,将byte数组转化为字符串
byte[] a = {97,98,99};
String s1 = new String(a, 1, 2)//1是开始时下标,2是长度 - String是引用数据类型,所有双引号括起来的都是引用数据类型,双引号括起来的字符串不可变的,直接存放在字符串常量池中
- char 名字 = 数据.char AT(下标)会输出下标数据,提取字符串的某个元素
- 字符串之间比较大小不能直接使用> <, 需要使用compareTo方法。
int result = “abc” . compareTo(“abc”);
System.out .println(result);
拿着宇符串第1个字母和后面宇符串的第1个字母比较。能分胜负就不再比较了
System. out.println(“xyz” .compareTo(“yxz”)); - 判断前面的字符串中是否包含后面的子字符串
System. out. println( “Hellolorld. java” . contains(".java"));
System . out . println(“http://w. baidu. com” . contains(“https://”));
包含是true不包含是flash - 判断当前字符串以某个子字符串开始
System.out. println(" hrrp:// www. baidu. com". startsWith(“http”)) - 判断当前字符串是否以某个子字符串结尾。
System. out. print1n(“test.txt” . endsWith(" .java")); // false
System. out . println(“test.txt” . endsWith(" .txt")); // true
System.out.println(“fdsajk1fhdkjlsahfjkdsahjk1fdss” . endsWith(“ss”)); // true - boolean equals(Object anObject)
比较两个字符串心须使用equals方法,不能使用"==”
equals只能看出相等不相等,compareTo方法可以看出是否相等,并且同时还可以看出谁大谁小。
equals在jdk8以前调用了compareTo方法
boolean equalsIgnoreCase(String anotherString)
判断两个字符串是否相等,并且同时忽略大小写。
System. out . println(“ABc” . equalsIgnoreCase( anotherString: “abC”); true - byte[] getBytes()
将字符串对象转化为字节数组
byte[] bytes = “abcdef” . getBytes();
for(int i = 0; i < bytes.length; i++){
System. out . println( bytes[ i]);
} - int index0f(String str)
判断某个字符串在当前字符串第一次出现的下标
System. out . print1n(“orac1ejavac++ .netc#phppythonjavaorac1ec++” . index0f(“java”)); //6 - int lastIndexOf(String str)
判断某个子字符串在当前宇符串中最后一次出现的索引( 下标)
System. out .print1n( “oraclejavac++javac#phpjavapython” .lastIndex0f( str: “java”)); //22 - boolean isEmpty()
判断一个字符串是否为空,也可用int length()判断
String s = “”;
System.out . print1n(s.isEmpty()); //true - int length()
面试题:判断数组长度和判断宇符串长度不一样
判断数组长度是length属性,判断宰符串长度是length()方法。
System. out . println(“abc” .length(); // 3
System. out . println("" .length()); //0 - String replace(CharSequence target, CharSequence replacement)
//替换字符串中某个元素
String的父接口是: CharSequence
String newString = “http:llwww. baidu. com” . replace( target: “http://”, replacement: “https://”);
System . out . println(newString); //https://www. baidu. com
把以下字符串中的“=”替换成:”
String newString2 = “name=zhangsan&password=123&age=20” . replace( target: “=”, replacement: “:”);
System. out . println(newString2);
//name : zhangsan&pas sword: 123&age:20 - String[ ] split(String regex)
//拆分字符串
String[] ymd = “1988-10-11” .split( regex: “-”);
for(int i = 0; i < ymd. length; i++){
System. out . println(ymd[i]);
//1988
//10
//11
}
String param = “name=zhangsan&password=123&age=20” ;
String[0] params = param.split( regex: “&” );
for(int i = 0; i <params . length; i++){
System. out.println(params[i]);
} - String substring(int beginIndex)
//截取字符串
System. out.println(" http:// www.baidu.co m.substring(7)");// www.baidu.com
System.out. println(" http:// www. baidu. com". substring(7, 10));// www (左闭右开) - char[ ] toCharArray();
将字符串转化为char数组
char[ ] char = “我是中国人”·toCharArray();
for(int i =0;……){
输出i
} - toLowerCase()
//转化为小写
System.out. println(" ABCDefKXyz". toLowerCase()); - String toUpperCase();
//转化为大写 - String trim();
去除字符串前后空白hello
System.out . println(" hello world “” . trim());// hello word - String中只有一 个方法是静态的,不需要new对象这个方法叫做value0f
作用:将非字符串”转换成“字符串”
String s1 = String. valueOf(100) ;
System. out . println(s1); - println()会调用valueOf,而valueOf则会调用toString方法所以println()输出才会调用to String方法
- String为啥是不可变的?
String类里有一个byte数组,byte数组是final修饰的
Srtring
最新推荐文章于 2021-11-15 22:50:31 发布