字符串划分

-2 java string

我想打印字符串"我的名字是xxx"作为"xxx是我的名字"而不使用特殊方法(如java中的util包方法); 谢谢

pol*_*nts 5

  String text = "my name is xxx";
  String reversed = "";
  for (String word : text.split(" ")) {
     reversed = word + " " + reversed;
  }
  reversed = reversed.trim();
Run Code Online (Sandbox Code Playgroud)

如果绝对不允许方法调用,那么它有点麻烦.

  String text = "my name is xxx";
  char[] letters = text.toCharArray();
  char[] srettel = new char[letters.length];
  for (int last = letters.length, i = last - 1, j = 0; i >= -1; i--) {
     if (i == -1 || letters[i] == ' ') {
        for (int k = i + 1; k < last; ) {
           srettel[j++] = letters[k++];
        }
        if (i != -1) srettel[j++] = ' ';
        last = i;
     }
  }
  String reversed = new String(srettel);
Run Code Online (Sandbox Code Playgroud)

这需要更多解释.我们从右到左读取输入数组(i--),每当我们找到一个空格,或者当我们最终点击左墙(i == -1)时,我们将for k找到的单词()复制到输出数组([j++] =).我们跟踪单词边界last.