字符串练习
编写一个程序,从标准输入设备上输入一行英文语句。敲击回车后对该语句进行处理,对每个(逗号,句号,感叹号和问号除外)单词进行反向处理操作,且保持原语句顺序,将处理完毕的结果输出在标准输出设备上。
举例一:
输入:
输出:
代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class D0019 {
public static void main(String[] args) throws IOException {
String regex=" |,|\\?|\\.|\\!";
String regex1=" ";
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String str=input.readLine();
String[] slist=str.split(regex);//以符号和空格分割
String[] cstr=str.split(regex1);//以空格分割
for(int i = 0,z=0; i < slist.length&&z<cstr.length;) {
int index=0;
if(slist[i].equals(cstr[z])){//处理以空格隔开的字符串
StringBuffer sb = new StringBuffer(slist[i]);
System.out.print(sb.reverse()+" ");
i++;z++;
}else{//处理空格间有符号的
String[] cs=cstr[z].split(regex);//以符号分割当前字符串
char[]mid = new char[cs.length];
for(int k=0;k<cstr[z].length();k++){//保存符号
char c=cstr[z].charAt(k);
if(c==' '||c=='.'||c=='?'||c=='!'||c=='.'){
mid[index++]=c;
}
}
for(int j=0;j<cs.length;j++){//反序输出
StringBuffer s1 = new StringBuffer(cs[j]);
System.out.print(s1.reverse());
System.out.print(mid[j]);
}
i=i+cs.length;
z++;
}
}
}
}
(全文完)