编写一个区数,实现对字符串中单词反转的功能。
单词的定义是:完全由字母组成且由空格分开的字符串
反转的定义是:字母顺序前后反向
“abc”变为“cba”
例如下面的字符串:
"a hello1 abc world!"
“world!”不是单词(这两个字符串中包含非字母的字符1和所以不计为单词)
。反转过来的结果就是
“a hello1 cba world!"
要求:不使用任何strlen之类的库函数
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
import java.util.*;
public class T1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String[] array = str.split(" ");
for(String s:array) {
String newStr = isWord(s.replaceAll(" ", ""));
System.out.print(newStr+" ");
}
}
private static String isWord(String s) {
int flag = 0;
ArrayList array = new ArrayList<Character>();
for(int i=0;i<s.length();i++) {
char p = s.charAt(i);
array.add(p);
if(p>='A'&&p<='Z'||p>='a'&&p<='z') {
}else {
flag+=1;
}
}
if(flag==0) {
s = "";
Collections.reverse(array);
for (Object object : array) {
s += object.toString();
}
}
return s;
}
}