2016-11-20 84 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', '叉=餐桌' 。

相關問題