2016-05-23 7 views
-3

学校の子供のための一般的な罰は、文を複数回書くことです。次の文を100回書き出すJavaスタンドアロンプ​​ログラムを作成します。「私は再び友人を迷惑メールにしません」あなたのプログラムはそれぞれの文に番号を付けるべきであり、それは8つの異なる見知らぬ打ち間違いを作らなければならない。文字列を100回繰り返すが、8つのランダムな文字列で8つの固有のタイプミスを追加するJavaプログラムを作成する

これは私がこれまで行うことができたものです。一緒に行くことができません。

// initialize result without typos 
String[] sentences = new String[100]; 
Arrays.fill(sentences, "I will never spam my friends again."); 

// generate 8 unique typo indexes 
Set<Integer> typoIndexes = new HashSet<>(); 
while (typoIndexes.size() < 8) { 
    typoIndexes.add(Math.random() * 100); 
} 

// create a typo at each typo index 
for(int index : typoIndexes) { 
    StringBuilder sb = new StringBuilder(sentences[index]); 
    char char1 = char2 = char1; 
    int pos1, pos2; 
    while (char1 != char2) { 
     pos1 = Math.random(sb.length()); 
     char1 = sb.charAt(pos1); 
     pos2 = Math.random(sb.length()); 
     char2 = sb.charAt(pos2); 
    } 
    sb.setCharAt(pos1, char2); 
    sb.setCharAt(pos2, char1); 
    sentences[index] = sb.toString(); 
} 

注:ここでは

public class Punishment { 

    public static void textgen(int x) { 
     System.out.println(x + ") I will never spam my friends again"); 
    } 

    public static void main(String[] args) { 
     String a = "I will ever spam my friends again."; 
     String b = " will never spam my friends again."; 
     String c = "I will neer spam my friends again."; 
     String d = "I will never pam my friends again."; 
     String e = "I will never spam my riends again."; 
     String f = "I will never spam my friends gain."; 
     String g = "I will never spam y friends again."; 
     String h = "I will never sam my friends agn."; 

     String typos[] = {a,b,c,d,e,f,g,h}; 
     int[] exitng = new int[8]; 

     ArrayList<Integer> list = new ArrayList<Integer>(); 
     for (int i=1; i<=100; i++){ 
      list.add(new Integer(i)); 
     } 
     Collections.shuffle(list); 
     for (int i=0; i<8; i++){ 
      exitng[i] = list.get(i); 
      System.out.println(list.get(i)+")- "+typos[i]); 
     } 

     for (int i = 1; i <= 100; i++) { 
      textgen(i); 
     } 
    } 
} 

はアイデアだ

+1

'学校の子供たちのための共通の罰が文を複数回書き出すことです。あなたのプログラムはそれぞれの文章に番号を付け、8つの異なる見知らぬ打ち間違いを作らなければならない 'これはあなたの宿題のコピーですか? /ペースト?そのように見える。 「これはこれまで私ができたことです。一緒に行くことができない。どうしましたか ?どうしたの?あなたの投稿を編集して、それに質問をしてください。 – UDKOX

+0

正確な文章にランダムなタイプミスを挿入するのはずっと涼しくなります。単にタイプミスで8つの文章をプレハブします。 –

+0

あなたの宿題をstackoverflowで聞かないでください。 –

答えて

2
  • は、適切な文章の残りの部分を追加するには、配列またはリストにタイプミスで8つの文章を追加するコンパイルされていない、テストされていない
  • 配列全体またはリストをシャッフルする
  • のプリント要素
1

UPDATE

あなたはタイプミスで8つのランダム文章を作る代わりに、あなたの先生とのより良いスコアにそれらをprefabricateする機能を実装する必要があります。


うーん、これは一種の@Pschemoのようなものですが、ここに行く:

public static void main(String[] args) { 
    String a = "I will ever spam my friends again."; 
    String b = " will never spam my friends again."; 
    String c = "I will neer spam my friends again."; 
    String d = "I will never pam my friends again."; 
    String e = "I will never spam my riends again."; 
    String f = "I will never spam my friends gain."; 
    String g = "I will never spam y friends again."; 
    String h = "I will never sam my friends agn."; 

    List<String> l = new ArrayList<>(); 

    // Add the right sentence 92 time. 
    for (int i = 0; i < 92; i++) { 
     l.add("I will never spam my friends again."); 
    } 

    // Add 8 different typo sentences. 
    l.add(a); 
    l.add(b); 
    l.add(c); 
    l.add(d); 
    l.add(e); 
    l.add(f); 
    l.add(g); 
    l.add(h); 

    // Shuffle and print. 
    Collections.shuffle(l); 

    int i = 1; 
    for (String s: l) { 
     System.out.println(String.format("%d) %s", i++, s)); 
    } 
} 
+0

ありがとうございます。あなたは素晴らしいです:) – VIP

+0

私はあなたの課題を解決したので私にdownvoteを払った:P – totoro

+0

*不要なdownvoteの* upvoted * – Kaelinator

関連する問題