2016-12-14 2 views
0
import java.util.Scanner; 

public class WordScrambler { 

    public static void main(String[] args) { 

    Scanner in = new Scanner(System.in); 
    int chosenWord; 
    String[] words = {"hogwash","Rudolph","yule-log","Eggnog","CandyCane","Christmas","Fruitcake","gingerbread","Krampus","nutcracker"}; 

    System.out.println("Pick a number between 1-10"); 
    chosenWord=in.nextInt(); 

    String a=words[chosenWord].substring(0,words[chosenWord].length()/2); 
    String b=words[chosenWord].substring(words[chosenWord].length()/2); 
    String c=b+a; 
    int x=(int)(Math.random()*(words[chosenWord].length()-1))+1; 
    String d=c.substring(0, words[chosenWord].length()-x); 
    String e=c.substring(words[chosenWord].length()-x); 
    String f=e+d; 
    System.out.println(f); 
    } 
} 

이것은 내가 지금까지 가지고있는 것입니다. 더 이상 스크램블 할 방법을 찾을 수 없습니다. 바로 출력은 다음과 같습니다. Hogwash : shhogwa. 스크램블하는 유일한 단어입니다.Math.random으로 단어 스크램블러 만들기

답변

0
public static void main(String[] args) { 

    Scanner in = new Scanner(System.in); 
    int chosenIndex; 
    String[] words = { "hogwash", "Rudolph", "yule-log", "Eggnog", "CandyCane", "Christmas", "Fruitcake", 
      "gingerbread", "Krampus", "nutcracker" }; 

    System.out.println("Pick a number between 1-10"); 
    chosenIndex = in.nextInt(); 

    String chosenWord = words[chosenIndex - 1]; 
    System.out.println(chosenWord); 

    StringBuilder scrambled = new StringBuilder(); 
    List<Character> letters = new ArrayList<Character>(); 
    for (char x : chosenWord.toCharArray()) { 
     letters.add(x); 
    } 
    while (letters.size() != 0) { 
     int random = (int) (Math.random() * letters.size()); 
     scrambled.append(letters.remove(random)); 
    } 

    System.out.println(scrambled.toString()); 
} 

사용 의미있는 변수 이름이 너무 명확 무엇을 자사의

참조
관련 문제