面试题
键盘接收一个字符串里面包换字母,数字,符号,将数字和符号转为空格分割字母为单词输出
package com.xiangxue.ch6.schd;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String str = in.nextLine();
test2(str);
}
}
public static void test2(String str){
char[] ch = str.toCharArray();
ArrayList list = new ArrayList<>();
for(int i =0;i<ch.length;i++){
if((ch[i] >= ‘a’ && ch[i] <= ‘z’) || (ch[i] >= ‘A’ && ch[i] <= ‘Z’)){
if(!(list.size() == 0)){
//前面是空格
if(list.get(list.size()-1).equals(’ ‘)){
//是小写字母
if(ch[i] >= ‘a’){
list.add((char) (ch[i] - 32));
}else{
list.add(ch[i]);
}
}else {
if(ch[i] >= ‘a’){
list.add(ch[i]);
}else{
list.add((char) (ch[i] + 32));
}
}
}else{
if (ch[i] >= ‘a’){
list.add((char) (ch[i] - 32));
}else{
list.add(ch[i]);
}
}
} else{
if(!(list.get(list.size()-1)).equals(’ ‘)){
list.add(’ ');
}
}
}
list.add(list.size()-1, ‘.’);
for(int i = 0;i < list.size();i++){
System.out.print(list.get(i));
}
}
}