2016-11-20 32 views
1

我正在编写一个程序,它必须争夺一个单词。首先,我使用.reverse阅读这个词。然后我把字符串转换成一个charArray。我想创建一个for循环来判断第一个字母是否为“A”,如果是,那么我必须查看下一个字母是不是“A”。如果不是,那么我想交换两个字母。如果两个字母中的任何一个已经被交换过,则不能再次交换。 一些例子是 输入:“TAN”输出:“ATN” 输入:“ALACTRIC”输出:“AALCTRIC” 输入:“叉”输出:“叉”在java中交换一个未知字符串中的两个字母

这里是我到目前为止的代码:我不能找出要在for循环中放置什么。谢谢!

import java.util.Scanner; 

public class scrambleWordRetry { 
    public static void main(String[] args) 
     { 
     } 
    public static String scramble(Random random, String inputString) 
    { 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Please enter a word to scramble."); 
     inputString = scan.nextLine(); 

     char a[] = inputString.toCharArray(); 

     for(int i=0 ; i<a.length-1 ; i++) 
      { 

      } 
     return inputString;  
    } 
} 
+0

由于在主方法中不调用'scramble()',所以你的代码目前没有任何操作。 – JohnnyAW

+0

很多你问过的东西都是你需要做的很好的伪代码,但是你还没有展示过自己实现所有东西的尝试。另外还有一点需要注意:当你立即为它赋值时,为什么要把inputString作为参数。我会将它作为参数删除,或者在方法外部读取字符串(我更喜欢这样做,因为这样可以让您的方法适用于任何字符串,而不只是通过扫描器读取) – chatton

+0

家庭作业项目? – brummfondel

回答

0

我希望这个代码是你

Scanner x = new Scanner(System.in); 
    String str = x.next(); 
    System.out.println("Before Swapping" + str); 
    str = scramble(str); 
    System.out.println("After Swapping " + str); 
} 

public static String scramble(String inputString) { 
    char s[] = inputString.toCharArray(); 
    for (int i = 1; i < s.length; i++) { 

     if (s[i] == 'A' || s[i] == 'a') { 
      char temp = s[i - 1]; 
      s[i - 1] = s[i]; 
      s[i] = temp; 

     } 
    } 
    return new String(s); 
} 

那么有用的,如果你输入 'ALACTRIC' 输出将是 'AALCTRIC', '谭= ATN', '叉=餐桌' 。

相关问题