Java字符串定义及常用方法
string、stringbuffer和stringbuilder
string修饰的是不可变的字符串,而stringbuffer和stringbuilder类的对象是可以被修改的。
stringbuffer和stringbuilder 类不同的是stringbuilder 是线程不安全的,但运行速度要比stringbuffer快(性能高);stringbuffer是线程安全的(性能低)。
字符串的定义
string str = "hello"; //或 string str2; str2 = "hello"; //或 string str3 = new string("hello"); string str4 = new string(str3);
字符串拼接【concat()】
//加号(+)拼接 string str = "hello "; string str2 = "world"; system.out.println(str+str2); //使用 concat() 方法 string str3 = "hello"; str3 = str3.concat(" world"); str3 = str3.concat(" 你好"); system.out.println(str3);
字符串长度【length()】
string str = "hello"; int str_len = str.length(); // 获取字符串长度 system.out.println(str_len);
大小写转换
string str = "hello world"; system.out.println(str.tolowercase()); //转换成小写,结果为:hello world system.out.println(str.touppercase()); //转换成大写,结果为:hello world
去空格【trim()】
string str = " hello "; string trim = str.trim(); system.out.println(trim); //"hello" system.out.println(str.length()); //9 system.out.println(trim.length()); //5
字符串截取【substring()】
注意:substring():截取字符串时不是按照字符索引来截取的,而是按字符来截取的。
substring(int beginindex,int endindex):beginindex(起始索引),endindex(结束索引)。
(截取长度不能超出字符串长度范围)
string str = "hello world"; string str_sub1 = str.substring(7); string str_sub2 = str.substring(2,9); system.out.println(str_sub1); //orld system.out.println(str_sub2); //llo wor
字符串分隔【split()】
string str = "hello,world"; string[] split = str.split(","); //split("指定的分隔符"); for(int i = 0;i<split.length;i++){ system.out.println("字符串分割后为:\n" + split[i]); }
字符串替换【replace()】
replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串)。
replacefirst() 方法用于将目标字符串中所指定的字符串的第一个子字符串替换成新的字符串。
replaceall() 方法用于将目标字符串中所指定的字符串的所有子字符串替换成新的字符串。
string str = "hello world,hello java"; string replace = str.replace("w","w"); //replace("被替换的字符(串)","替换的字符(串)"); string replacefirst = str.replacefirst("hello","你好"); string replaceall = str.replaceall("hello","你好"); system.out.println(replace); // hello world,hello java system.out.println(replacefirst); // 你好 world,hello java system.out.println(replaceall); // 你好 world,你好 java
字符串的比较【equals()】
equals() 方法将两个字符串逐个地进行比较,看每个字符是否相同;相同为true,不同为false。(区分大小写)【常用】
equalsignorecase() 与equals()方法相同,但不区分大小写。
compareto() 方法基于字符串的unicode值进行比较(做减法运算)。(如下:“a”的unicode值为97,“a”的unicode值为65,故str1.compareto(str)等于32)
string str1="abc"; string str2=new string("abc"); string str3="abc"; system.out.println(str1.equals(str2)); // true system.out.println(str1.equals(str3)); // false system.out.println(str1.equalsignorecase(str2)); // true string str="a"; string str1="a"; system.out.println("str1.compareto(str)的结果是:"+str1.compareto(str)); // 32 system.out.println("str1.compareto('a')的结果是:"+str1.compareto("a")); // 0
字符串查找
根据字符查找
indexof() 方法用于返回字符(串)在指定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返回 -1。
lastindexof()方法用于返回字符(串)在指定字符串中最后一次出现的索引位置,如果能找到则返回索引值,否则返回 -1。
注意:
indexof() 方法的查找策略是从左往右查找,如果不指定起始索引,则默认从字符串的开头开始查找。
lastindexof() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。
string str = "hello world,hello java"; system.out.println(str.indexof("e")); // 1 (查找"e"在字符串中第一次出现的位置) system.out.println(str.indexof("e",6)); // 13 (从左往右查找,从索引为6开始查找"e"的位置) system.out.println(str.lastindexof("e")); // 13 (查找"e"在字符串中最后出现的位置) system.out.println(str.lastindexof("e",6)); // 1 (从右往左查找,从索引为6开始查找"e"的位置)
根据索引查找【charat()】
string str = "hello world"; system.out.println(str.charat(6)); // w (查找索引为6的字符)