2014-11-05 41 views
-4

作业:连续打印单词反向且顺序相同?

编写一个程序来显示这样的输出,其中输入是在运行时给出的。

样品输入:

my name is raghavendra 

样本输出:

ym name si raghavendra 

这是我到目前为止有:

import java.util.*; 

class ReverseString2 { 
    public static void main(String[] args) { 
     Scanner sc = new 
+1

这是怎么不问问题! – Andy 2014-11-05 01:26:39

+0

请正确格式化您的问题并显示您尝试过的不工作 – mdewitt 2014-11-05 01:27:58

回答

0

根据您的问题,我会用一个StringBuilder。因为,当索引是偶数时,它有一个有用的reverse()函数。我相信你想要类似

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    while (sc.hasNextLine()) { 
     String line = sc.nextLine(); 
     // The \\s+ pattern matches one or more white-space characters. 
     String[] words = line.split("\\s+"); 
     for (int i = 0; i < words.length; i++) { 
      if (i != 0) { 
       System.out.print(' '); 
      } 
      StringBuilder sb = new StringBuilder(words[i]); 
      // Reverse every other word. 
      if (i % 2 == 0) { 
       sb.reverse(); 
      } 
      System.out.print(sb); 
     } 
     System.out.println(); 
    } 
} 
0

另一种解决方案是使用charAt。代码看起来类似于这样的:

public String invertEvenWords(String line) {  

    String result = ""; 
    String[] words = line.split("\\s+"); 

    for (int i = 0; i < words.length; i++) { 

     /* The n-th word is reversed if n i even. */ 
     if (i % 2 == 0) { 
      String inv = ""; 
      for (int j = 0; j < words[i].length(); j++) { 
       char ch = words[i].charAt(j); 
       inv = ch + inv; 
      } 
      result += inv + " "; 

     /* Otherwise the word isn't reversed. */ 
     } else { 
      result += words[i] + " "; 
     } 
    } 

    return result; 

} 
相关问题