我正在尝试弄清楚如何使用字符数组来将句子向后(或乱序)拼写出来,并用空格分隔单词,以区分它们并以正确/反转的格式对其重新排序而不是用字符数组拼写 World Good Hello ,它会像这样['H','e','l','l', 'o',',','G','o','o','d',','W','o','r','l','d']
这或多或少是在黑暗中的镜头。
最后,我想将其作为字符数组返回。
代码:
class Main {
public static void main(String[] args) {
// World Good Hello
// reverse to: Hello Good World
char[] chrArray = new char[] {'W','o','r','l','d',' ','G','o','o','d',' ','H','e','l','l','o'};
String str = String.valueOf(chrArray);
String[] strArray = str.split(" ");
char[] result = new char[0];
for (int i = 0; i < strArray.length; i++) {
for (int h = 0; h < strArray[i].length(); h++) {
char[] temp = new char[strArray[i].charAt(h)];
temp[temp.length - 1] = ' ';
char[] both = Arrays.copyOf(result, result.length);
List<character> temp2 = System.arraycopy(temp, 0, both, result.length, temp.length);
result = temp2.toCharArray();
}
}
}
}
答案 0 :(得分:0)
我认为以下代码足以逆转:
String[] strArray = str.split(" ");
for(int i =strArray.length-1;i>=0;i--) {
System.out.print(strArray[i] + " ");
}
这将输出:Hello Good World
答案 1 :(得分:0)
public static String reverseWords(String sentence) {
String[] words = sentence.split("\\s+");
StringBuilder buf = new StringBuilder(sentence.length());
for (int i = words.length - 1; i >= 0; i--) {
if (buf.length() > 0)
buf.append(' ');
buf.append(words[i]);
}
return buf.toString();
}
使用reverseWords(...).toCharArray()
获取 char数组。