如何在不改变单词位置的情况下反转字符串

时间:2015-10-29 19:35:59

标签: java

我的目标是在不改变单词位置的情况下反转字符串,我想打印"tesT eht tcudorp"

public class roughWork {
    public static void main(String[] args) {
        String str = "Test the product";
        String arr[] = str.split(" ");
        for (int i = 0; i < arr.length; i++) {
            for (int j = arr[i].length() - 1; j >= 0; j--) {
                System.out.print(arr[j] + " ");
            }
        }

    }
}

3 个答案:

答案 0 :(得分:0)

你几乎只使用charAt并打印arr[i].charAt(j)

 String str = "Test the product";
 String arr[] = str.split(" ");
 for (int i = 0; i < arr.length; i++) {

    for (int j = arr[i].length() - 1; j >= 0; j--) {
        System.out.print(arr[i].charAt(j));
    }
    System.out.print(" ");
 }

Demo

答案 1 :(得分:0)

您的问题是,您要求它在此行中重复打印整个字符串:System.out.print(arr[j]+" ");。更改它以仅打印单个字符将解决它:

public class roughWork {
  public static void main(String[] args) {
      String str= "Test the product";
      String arr[]=str.split(" ");
      for(int i=0;i<arr.length;i++)
      {

          for(int j=arr[i].length()-1;j>=0;j--)
          {   
          System.out.print(arr[i].charAt(j));
          }
          System.out.print(" ");
      }
   }
}

第二个打印在输出所有单词字符后添加每个单词之间的空格。

答案 2 :(得分:-2)

class reverse {
    public static void main(String[] args) {
        String s = "Hello India";
        String[] ch = s.split(" ");
        for (String chr : ch) {
            String rev = "";
            for (int i = chr.length() - 1; i >= 0; i--) {
                rev = rev + chr.charAt(i);
            }
            System.out.print(rev + " ");
        }
    }
}