在实际的开发工作中,对字符串的处理时最常见的编程任务,要求:
1:每个单词的首字母变为大写:
2:数字与字母之间用(_)分开
3:单词之间的多个空格调整为一个空格
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String pi= scan.nextLine();
//用split可以处理任何字符串的分隔,真的很好用
String[] arr= pi.split(" +");
//循环每一个单词
for(int i=0;i<arr.length;i++) {
int k = arr[i].length(); //读取长度
//循环单词中的每一个字符
for(int j=0;j<k-1;j++) { //注意这里的循环是到k-2,因为循环里面有j+1,
//判断该字符是不是字母
if(arr[i].charAt(j)>='a'&&arr[i].charAt(j)<='z') {
if(j==0) //第一个大写
System.out.print((char)(arr[i].charAt(j)-32));
else //第一个不是字母的话直接打印
System.out.print(arr[i].charAt(j));
//判断该字母的下一个是不是数字,是的话打印“_”
if (arr[i].charAt(j+1)>='0'&&arr[i].charAt(j+1)<='9'){
System.out.print("_");
}
}
//如果不是字母,就是数字,先打印数字
else {
System.out.print(arr[i].charAt(j));
//如果下一个是字母,打印下划线
if(arr[i].charAt(j+1)>='a'&&arr[i].charAt(j+1)<='z') {
System.out.print("_");
}
}
}
//打印单词的最后一个字符,并且对空格做了处理
if(i!=arr.length)
System.out.print(arr[i].charAt(k-1)+" ");
else {
System.out.print(arr[i].charAt(k-1));
}
}
}
}