String类关于字符串的常用操作:
① 获取功能:
(1)public int length():返回此字符串的长度;
(2)public char charAt(int index):获取指定索引处的字符;
(3)public int indexOf(String str)和public int indexOf(int ch):获取第一次出现指定字符串/字符处的索引号。int ch参数传递的是int类型,实际上也就是支持传递char类型。
(4)public int lastIndexOf(String str)和public int lastIndexOf(int ch):获取最后一次出现指定字符串/字符处的索引号。
(5)public int indexOf(String str,int fromIndex)和public int indexOf(int ch, int fromIndex):返回指定字符串/字符在此字符串中从指定位置后第一次出现处的索引。
(6)String substring(int start):从指定位置开始截取字符串,默认到末尾。
(7)String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。
(8)String concat(String str):把字符串拼接。返回新字符串。
public class StringDemo{
/*
获取:
(1)public int length():返回此字符串的长度;
(2)public char charAt(int index):获取指定索引处的字符;
(3)public int indexOf(String str)和public int indexOf(int ch):获取第一次出现指定字符串/字符处的索引号。int ch参数传递的是int类型,实际上也就是支持传递char类型。
(4)public int lastIndexOf(String str)和public int lastIndexOf(int ch):获取最后一次出现指定字符串/字符处的索引号。
(5)public int indexOf(String str,int fromIndex)和public int indexOf(int ch, int fromIndex):返回指定字符串/字符在此字符串中从指定位置后第一次出现处的索引。
(6)String substring(int start):从指定位置开始截取字符串,默认到末尾。
(7)String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。
(8)String concat(String str):把字符串拼接。返回新字符串。
面试题:
1 数组中获取长度和字符串中获取长度有什么区别?
数组:length属性;
字符串:length()方法
练习题:
在字符串"ajavadfsafjavakdlkljjavalkljj",来查找子字符串"java"出现的次数
*/
public static void main(String[] args){
String str = "javasejavase";
System.out.println("字符串的长度为:"+str.length());
String str1 = "se";
int index = str.indexOf(str1);
System.out.println("字符串'se'在str中第一次出现的位置的索引号:"+index);
int ind = str.indexOf(97);
System.out.println("97在str中对应的字符第一次出现的索引号:"+ind);
String str2 = "rt";
int ind2 = str.indexOf(str2,2);
System.out.println(ind2);
String sub1= str.substring(5);//包含开始
System.out.println(sub1);
String sub2= str.substring(5,7);//包含开始但不包含结尾
System.out.println(sub2);
String str3 = str.concat(sub2);
System.out.println(str3);
System.out.println("------------------------------------");
String str4 = "ajavadfsafjavakdlkljjavalkljavaj";
String keyStr = "java";
int count= 0 ;
int index4 = 0;
while(index4 != -1 ){
index4 = str4.indexOf(keyStr);
count++;
if((index4 + keyStr.length()) <= str4.length()){
str4 = str4.substring(index4 + keyStr.length());
}
}
System.out.println("java在str中出现的次数为:" + (count - 1));
}
}
② 判断方法
(1)boolean equalsIgnoreCase(String str):比较字符串内容相同时忽略大小写;
(2)boolean contains(String str):判断是否包含指定字符串;
(3)boolean startsWith(String str):判断字符串是否以指定的字符串开头;
(4)boolean endsWith(String str):判断字符串是否以指定的字符串结尾;
(5)boolean isEmpty():判断字符串是否为空。注意,字符串为空指的是空字符串””,而不是null。因为null是空指针,null不能调用方法,否则出现空指针异常NullPointerException
③ 转换方法
(1)byte[] getBytes():把字符串转换为字节数组。
(2)char[] toCharArray():把字符串转换为字符数组。
(3)static String valueOf(char[] chs):把字符数组转成字符串。
(4)static String valueOf(int i):把int类型的数据转成字符串。
注意:String类的valueOf静态方法可以把任意类型的数据转成字符串。
(5)String toLowerCase():把字符串转成小写。
(6)String toUpperCase():把字符串转成大写。
④其他方法
(1)String replace(char old,char new)和String replace(String old,String new):将字符串中原有的指定字符串替换成新的字符串/字符。
(2)String trim():去除字符串的两端空格。
(3)int compareTo(String str)
(4)int compareToIgnoreCase(String str)
public class StringDemo2{
/*
(1)boolean equalsIgnoreCase(String str):比较字符串内容相同时忽略大小写;
(2)boolean contains(String str):判断是否包含指定字符串;
(3)boolean startsWith(String str):判断字符串是否以指定的字符串开头;
(4)boolean endsWith(String str):判断字符串是否以指定的字符串结尾;
(5)boolean isEmpty():判断字符串是否为空。不为空返回false 为空返回true
注意,字符串为空指的是空字符串””,而不是null。
因为null是空指针,null不能调用方法,否则出现空指针异常NullPointerException
*/
public static void main(String[] args){
String str = "helloWord";
boolean isContains = str.contains("hello");
System.out.println(isContains);
boolean isStartsWith = str.startsWith("hell");
System.out.println(isStartsWith);
String str1 = "abc.doc";
boolean isEndWith = str1.endsWith(".doc");
System.out.println(isEndWith);
str = null;
str = "";//空字符串
String str2 = new String();
boolean empty = str2.isEmpty();
System.out.println(empty);//
byte[] str2ByteArr = str1.getBytes();
for(int i = 0 ; i < str2ByteArr.length; i++){
System.out.println(str2ByteArr[i]);
}
//char[] toCharArray():把字符串转换为字符数组。
char[] str2Char = str1.toCharArray();
for(int i = 0 ; i < str2Char.length; i++){
System.out.println(str2Char[i]);
}
//static String valueOf(char[] chs):把字符数组转成字符串
String char2Str = String.valueOf(str2Char);
System.out.println(char2Str);
/*
(1)String replace(char old,char new)和String replace(String old,String new):将字符串中原有的指定字符串替换成新的字符串/字符。
(2)String trim():去除字符串的两端空格。
(3)int compareTo(String str)
(4)int compareToIgnoreCase(String str)
*/
String str3 = "abcdadadc";
String str4 = str3.replace('a','m');
System.out.println(str4);
String str5 = str3.replace("ad","kl");
System.out.println(str5);
String str6 =" rer eqr ";
System.out.println("-----------------------");
System.out.println(str6);
String str7 = str6.trim();
System.out.println(str7);
}
}