2016-11-16 19 views
-4

私の出力は、最初に大文字を得て、大文字をアルファベット順に並べ、アルファベット順に並べます。最初に大文字を小文字に変換してから、目的の出力に応じてアルファベット順に並べ替え、変更はcollectLetters()メソッドでのみ行われるはずです。誰も私にこれを助けてくれますか?前もって感謝します。文字列のすべての文字を小文字に変換してアルファベット順に並べます

public class QuizIID 
{ 

public static String collectLetters(String text) 
{ 
    char[] charArray = text.toCharArray(); 
    Arrays.sort(charArray); 
    String sortedString = new String(charArray); 
return sortedString; 
} 

// runTestの方法

private static boolean runTest(int testNum, String p0, boolean hasAnswer, String p1) 
{ 
    System.out.print("Test #" + testNum + ": [" + "\"" + p0 + "\""); 
    System.out.println("]"); 
    String answer; 
    answer = collectLetters(p0); 
    boolean res; 
    res = true; 

    if (hasAnswer) { 
     System.out.println("Desired answer:"); 
     System.out.println("\t" + "\"" + p1 + "\""); 
    } 
    System.out.println("Your answer:"); 
    System.out.println("\t" + "\"" + answer + "\""); 
    if (hasAnswer) { 
     res = answer.equals(p1); 
    } 
    if (!res) { 
     System.out.println("DOESN'T MATCH!!!!"); 
    } else if (hasAnswer) { 
     System.out.println("Correct!"); 
    } 
    System.out.println(); 
    return res; 
} 

//メインメソッド

public static void main(String[] args) { 
    int count = 0; 

    String p0; 
    String p1; 

    // ----- test 1 ----- 
    p0 = "She sells sea shells"; 
    p1 = "aeeeehhllllssssss"; 
    if(runTest(1, p0, true, p1)) count++; 
    // ------------------ 

    // ----- test 2 ----- 
    p0 = "ReMemBEr To IgnoRE CASe"; 
    p1 = "abceeeeegimmnoorrrst"; 
    if(runTest(2, p0, true, p1)) count++; 
    // ------------------ 

    // ----- test 3 ----- 
    p0 = "12345"; 
    p1 = ""; 
    if(runTest(3, p0, true, p1)) count++; 
    // ------------------ 

    // ----- test 4 ----- 
    p0 = "Programming III is fun"; 
    p1 = "afggiiiiimmnnoprrsu"; 
    if(runTest(4, p0, true, p1)) count++; 
    // ------------------ 

    // ----- test 5 ----- 
    p0 = "Knights are better than Bishops"; 
    p1 = "aabbeeeghhhiiknnoprrssstttt"; 
    if(runTest(5, p0, true, p1)) count++; 
    // ------------------ 

    System.out.print(count + " out of 5"); 
    if (count == 5) 
    { 
     System.out.println("!"); 
    } 
    else 
    { 
    System.out.println("."); 
    } 
} 
} 

//所望の出力

----jGRASP exec: java QuizIID -Xlint:unchecked 
Test #1: ["She sells sea shells"] 
Desired answer: 
    "aeeeehhllllssssss" 
Your answer: 
    "aeeeehhllllssssss" 
Correct! 

Test #2: ["ReMemBEr To IgnoRE CASe"] 
Desired answer: 
    "abceeeeegimmnoorrrst" 
Your answer: 
    "abceeeeegimmnoorrrst" 
Correct! 

Test #3: ["12345"] 
Desired answer: 
    "" 
Your answer: 
    "" 
Correct! 

Test #4: ["Programming III is fun"] 
Desired answer: 
    "afggiiiiimmnnoprrsu" 
Your answer: 
    "afggiiiiimmnnoprrsu" 
Correct! 

Test #5: ["Knights are better than Bishops"] 
Desired answer: 
    "aabbeeeghhhiiknnoprrssstttt" 
Your answer: 
    "aabbeeeghhhiiknnoprrssstttt" 
Correct! 

5 out of 5! 

----jGRASP: operation complete. 

//私の出力

----jGRASP exec: java QuizIID 
Test #1: ["She sells sea shells"] 
Desired answer: 
"aeeeehhllllssssss" 
Your answer: 
" Saeeeehhllllsssss" 
DOESN'T MATCH!!!! 

Test #2: ["ReMemBEr To IgnoRE CASe"] 
Desired answer: 
"abceeeeegimmnoorrrst" 
Your answer: 
"ABCEEIMRRSTeeegmnoor" 
DOESN'T MATCH!!!! 

Test #3: ["12345"] 
Desired answer: 
"" 
Your answer: 
"12345" 
DOESN'T MATCH!!!! 

    Test #4: ["Programming III is fun"] 
    Desired answer: 
    "afggiiiiimmnnoprrsu" 
    Your answer: 
    " IIIPafggiimmnnorrsu" 
    DOESN'T MATCH!!!! 

    Test #5: ["Knights are better than Bishops"] 
    Desired answer: 
    "aabbeeeghhhiiknnoprrssstttt" 
    Your answer: 
    " BKaabeeeghhhiinnoprrssstttt" 
    DOESN'T MATCH!!!! 

    0 out of 5. 

    ----jGRASP: operation complete. 
+0

それはこの1つを、開始する場所を知るのは難しいです。質問はなんですか?どうしたの?何を試しましたか?あなたはどこが間違っていると思いますか?ケースをどうやって変えようとしていますか?あなたの 'collectLetters'メソッドの中には大文字小文字を使って何もしません。 –

+0

これは間違いなく、著者の最終的な説明と詳細を使用します。文字列で文字列をソートして新しい文字列を出力することを意味しますか? – anthonymonori

+0

質問を完全に異なるものに変更するだけで既存の回答を無効にすることはできません。新しい質問がある場合は、新しい投稿を使用することが期待されます。質問を元に戻しました。 –

答えて

-2

これはregular expressionを使用しています

char[] charArray = text.toLowerCase().replaceAll("[^\\p{Lower}]","").toCharArray(); 

によってライン

char[] charArray = text.toCharArray(); 

を交換してください。

たRunnable例:

https://ideone.com/WSvUZy

+0

素晴らしい作品です。ありがとう、トン – Priyanshu

+0

これは何も並べ替えていません。 @Priyanshuこれはどのようにあなたの質問に答えることは不可能です。 – EJP

+0

@EJP:元のコードにその行を挿入すると、それが示唆されています。 –

関連する問題