🎄2.5字符串的转化
👜数值和字符串转化
1.publicclassTest_1 { publicstaticvoidmain(String[] args) { Stringstr1=String.valueOf(100); Stringstr2=String.valueOf(99.99); System.out.println(str1);//输出100System.out.println(str2);//输出99.99 } }
👜大小写转换
publicclassTest_1 { publicstaticvoidmain(String[] args) { Strings1="helloworld"; Strings2="HELLOWORLD"; // 小写转大写,输出HELLOWORLDSystem.out.println(s1.toUpperCase()); // 大写转小写,输出helloworldSystem.out.println(s2.toLowerCase()); } }
👜字符串转数组
publicclassTest_1 { publicstaticvoidmain(String[] args) { Strings1="hello"; System.out.println(s1.toCharArray()); } }
👜格式化
publicclassTest_1 { publicstaticvoidmain(String[] args) { Strings=String.format("%d-%d-%d", 2019, 9,14); System.out.println(s);//输出2019-9-14 } }
🎄2.6字符串的替换
publicclassTest_1 { publicstaticvoidmain(String[] args) { Stringstr="abcabcabcabcabc"; //将字符串中的b转换为a,输出aacaacaacaacaacSystem.out.println(str.replace('b', 'a')); //将字符串中的ab转换为dd,输出ddcddcddcddcddcSystem.out.println(str.replaceAll("ab", "dd")); //将字符串中首个ab转换为ff,输出ffcabcabcabcabcSystem.out.println(str.replaceFirst("ab", "ff")); } }
🎄2.7字符串拆分
publicclassTest_1 { publicstaticvoidmain(String[] args) { Stringstr="hello world hello bit"; String[] result=str.split(" ");// 按照空格拆分String[] result1=str.split(" ", 2);// 按照空格拆分,分2次分割System.out.println(Arrays.toString(result)); System.out.println(Arrays.toString(result1)); } }
输出如下:
这里有几种特殊情况,举个例子:
这里就用到了转义字符:
- 1. 字符"|","*","+"都得加上转义字符,前面加上 "\\" .
- 2. 而如果是 "\" ,那么就得写成 "\\\\" .
- 3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.
publicclassTest_1 { publicstaticvoidmain(String[] args) { Stringstr="2019.12.12"; String[] result=str.split("\\."); for (inti=0; i<result.length; i++) { System.out.printf("%s ",result[i]); } } }
我们还可以进行多次分割:
publicclassTest_1 { publicstaticvoidmain(String[] args) { Stringstr="2019=12+12"; String[] result=str.split("=|\\+");//第一次以=作为分割,第二次以+作为分割for (inti=0; i<result.length; i++) { System.out.printf("%s ",result[i]); } } }
🎄2.8字符串截取
publicclassTest_1 { publicstaticvoidmain(String[] args) { Stringstr="helloworld"; System.out.println(str.substring(5));//从下标为5的字符开始截取,输出worldSystem.out.println(str.substring(2, 4));//从下标为2截取到下标为4,但是不包括4,输出ll } }
注意事项:
- 索引从0开始
- 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标
🛴三.StringBuilder和StringBuffffer
🎄3.1StringBuilder和StringBuffffer的使用
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
publicclassTest_1 { publicstaticvoidmain(String[] args) { StringBuilderstringBuilder=newStringBuilder("abc"); StringBufferstringBuffer=newStringBuffer("abc"); System.out.println(stringBuilder);//输出abcSystem.out.println(stringBuffer);//输出abc } }
publicclassTest_1 { publicstaticvoidmain(String[] args) { StringBufferstringBuffer=newStringBuffer("百度网站:"); stringBuffer.append("www."); stringBuffer.append("baidu."); stringBuffer.append("com"); System.out.println(stringBuffer); stringBuffer.delete(0, 5);//删除下班索引0-5,但是不包括下标5的字符System.out.println(stringBuffer); stringBuffer.reverse(); System.out.println(stringBuffer);//逆序字符串 } }
关于StringBuilder和StringBuffer的操作的方法有如下:
序号 |
方法描述 |
1 |
public StringBuffer append(String s) 将指定的字符串追加到此字符序列。 |
2 |
public StringBuffer reverse() 将此字符序列用其反转形式取代。 |
3 |
public delete(int start, int end) 移除此序列的子字符串中的字符。 |
4 |
public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。 |
5 |
insert(int offset, String str) 将 str 参数的字符串插入此序列中。 |
6 |
replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。 |
🎄3.2StringBuilder和StringBuffffer的好处
- StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
- 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
- 然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
🛴四.总结
String在Java开发也是必不可少的角色,如对上文有意见或者有错误,还请大佬们斧正,觉得有帮助的童鞋们,创作不易,蟹蟹三连!