String里常用的方法
把字符串换成大/小写
String toUpperCase() ;toLowerCase()
String str1 = "Abc";String upperStr1 = str1.toUpperCase();System.out.println(upperStr1);//ABCString lowerStr1 = str1.toLowerCase();System.out.println(lowerStr1);//abc//想要部分大写可配合subString()方法,比如尾字母要大写String newStr1 = str1.substring(0,str1.length()-1).toLowerCase()+ str1.substring(str1.length()-1).toUpperCase();System.out.println(newStr1);//abC
切割字符串
String[] split(String regex)
根据regex切割字符串,并放在String[]里
//随机生成一个爱好String hobby = "唱,跳,RAP,篮球";String[] hobbies = hobby.split(",");double random = Math.random()*hobbies.length;System.out.println("被选中的是"+hobbies[(int)random]);
注意切割完后面为空字符则舍去,前面不舍
String str4 = "<Book>活着</Book><Book>兄弟</Book>";String[] books1 = str4.split("<Book>");System.out.println(Arrays.toString(books1));//[, 活着</Book>, 兄弟</Book>]String[] books2 = str4.split("</Book>");System.out.println(Arrays.toString(books2));//[<Book>活着, <Book>兄弟]
删除前后空白
String strip()
String str2 = " 我 爱 你 中 国 ";System.out.println(str2.strip());//我 爱 你 中 国
替换字符
String replace(CharSequence target, CharSequence replacement)
其中CharSequence是接口,String实现了CharSequence接口
//实现用*屏蔽敏感词汇Scanner scanner = new Scanner(System.in);String string = scanner.nextLine();String str1 = "cnm";String str2 = "sb";List<String> list = new ArrayList<>();list.add(str1);list.add(str2);for(String word : list) {//判断输入字符串是否包含这个敏感词汇if (string.contains(word)) {//repeat(int count)返回一个字符串是该字符串count的串联String asterisks = "*".repeat(word.length());//替换敏感词string = string.replace(word, asterisks);}}System.out.println(string);scanner.close();
找字符索引
int indexOf(String str) ;lastindexof(String str)
返回第一次出现str的起始位置的索引
//拿到"活着"并且打印出来String str3 = "<Books><Book>活着</Book></Books>";//找到<Book>中">"的索引和</Book>中"<"的索引int startIndex = str3.indexOf("<Book>") + "<Book>".length();int endIndex = str3.indexOf("</Book>");System.out.println("startIndex: " + startIndex +" endIndex: " + endIndex);
判断是否有子字符串
判断固定前,后缀
boolen startsWith(String prefix) ;endsWith(String suffix)
String str5 ="www.baidu.com";System.out.println(str5.startsWith("www"));//trueSystem.out.println(str5.endsWith(".com"));//true
判断是否有子字符串
bollen contains(CharSequence s)
例子在替换字符有体现
练习
小练习:把xml中的标签对象属性放在创建的对象数组里
//split subString indexOf lastIndexOf
public class StringDemo1 {public String getBeginTag(String str) {return "<" + str + ">";}public String getEndTag(String str) {return "</" + str + ">";}public String subStrCondition(String condition, String str) {return str.substring(str.indexOf(getBeginTag(condition)) + getBeginTag(condition).length(),str.indexOf(getEndTag(condition)));}public static void main(String[] args) {String str = "<Users><User><name>zhangsan</name><age>18</age></User><User><name>lisi</name><age>14</age></User></Users>";StringDemo1 stringDemo1 = new StringDemo1();str = stringDemo1.subStrCondition("Users", str);String[] sources = str.split(stringDemo1.getEndTag("User"));User[] users = new User[sources.length];int i = 0;for (String source: sources) {String name = stringDemo1.subStrCondition("name", source);String age = stringDemo1.subStrCondition("age", source);Integer age1 = Integer.parseInt(age);User user = new User();user.setAge(age1);user.setName(name);users[i] = user;i++;}System.out.println(Arrays.toString(users));//[User{name='zhangsan', age=18}, User{name='lisi', age=14}]}}