要求
已知String str = "this is a text";
1. 把这个字符串做拆分
2. 将str中的text换成practice
3. 在text前面插入easy
4. 将每一个单词首字母变成大写
5. 将第一个单词变成大写
代码
package blogtest.oop2.String;
import java.lang.reflect.Array;
import java.util.Locale;
public class String3 {
public static void main(String[] args) {
//已知String str = "this is a text";
//1. 把这个字符串做拆分
String str = "this is a text";
String[] arr = str.split(" ");
for (String new1 : arr) {
System.out.println(new1);
}
//2.将str中的text换成practice
System.out.println(str.replace("text","practice"));
//3.在text前面插入easy
System.out.println(str.replace("text","easy text"));
//4.将每一个单词首字母变成大写
//因为是数组的遍历,所以才需要用到for循环
for (int i = 0; i < arr.length; i++) {
char first = arr[i].charAt(0);
//转大写
char upperFirst = Character.toUpperCase(first);
String new3 = upperFirst+arr[i].substring(1);
System.out.println(new3);
}
//一句话,只是字符串
char first1 = str.charAt(0);
//转大写
//为什么不能直接用first1直接点出方法,因为他不是String类的,他是char类的
char upperFirst1 = Character.toUpperCase(first1);
String new4 = upperFirst1+str.substring(1);
System.out.println(new4);
}
}
解析
- 做拆分:split方法
- 替换:replace
- 插入:也可以用replace
- 转大写:toUpperCase
第一步
- 因为split转出来是一个个数组,所以数组需要用for循环遍历出出来
- 将split的方法的一些改变赋值给arr这个String类型的数组
- 然后用foreach循环遍历,将arr这个数组赋值给new1这个String类型,然后输出
第二步
直接用replace就可以了
第三步
- 也可以用replace替换字符
第四步
- 需要用for循环遍历数组元素,先选中需要被改变的字符串,用charAt方法,后面跟着下标0,然后得到一个新的返回值first
- 然后此时first已经是每一个数组元素的头一个字母,已经被赋值好了,所以此时我们需要再来一个引用类型,使用它的包装类Character,再用toUpperCase方法后边将需要改变大写的first填上去
- 接着就是准备输出,定义一个字符串new3,将大写的upperfirst与数组元素arr【i】,就是每一个元素,然后此时需要一个新方法substring后边跟着被断开的下标,这里我们是第一个首字母大写,所以我们要从第二个字母开始断开,就是下标1
- 然后输出new3就ok了
拓展(第五步)
这个步骤更加简洁,不用用到for循环,因为我们需要的是整一句话,所以直接用str就OK了,步骤跟刚才基本一样,所以直接看代码就行了