Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串中的所有字母转换成小写字母,然后按字母顺序排列_Java - Fatal编程技术网

Java 将字符串中的所有字母转换成小写字母,然后按字母顺序排列

Java 将字符串中的所有字母转换成小写字母,然后按字母顺序排列,java,Java,我的输出首先得到大写字母,并将这些大写字母按字母顺序排列,而不是考虑小写字母并将它们按字母顺序排列。我想首先将大写字母转换为小写字母,然后按照所需输出中的按按字母顺序排列,并且仅在collectLetters()方法中进行更改。有人能帮我吗?提前谢谢 public class QuizIID { public static String collectLetters(String text) { char[] charArray = text.toCharArray(); Arr

我的输出首先得到大写字母,并将这些大写字母按字母顺序排列,而不是考虑小写字母并将它们按字母顺序排列。我想首先将大写字母转换为小写字母,然后按照所需输出中的按按字母顺序排列,并且仅在collectLetters()方法中进行更改。有人能帮我吗?提前谢谢

public class QuizIID
 {

public static String collectLetters(String text)
{
    char[] charArray = text.toCharArray();
  Arrays.sort(charArray);
  String sortedString = new String(charArray);
 return sortedString;
}
//运行测试法

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.
更换线路

char[] charArray = text.toCharArray();

这使用了一个

可运行示例:


很难知道从哪里开始,就从这个开始。问题是什么?有什么问题吗?你试过什么?你认为你错在哪里?你是如何试图改变这种情况的?您的
collectLetters
方法中没有任何内容与case有关。这肯定需要作者进行更多的描述和阐述。你的意思是按字符串的字符排序并输出一个新字符串吗?你不能只是将问题更改为完全不同的问题,从而使现有答案无效。如果你有一个新的问题,你应该使用一个新的帖子。我把问题退回到原来的问题上来了。效果很好。谢谢,托尼,这不算什么@Priyanshu不可能看出这是如何回答您的问题的。@EJP:如果您按照建议在原始代码中插入这一行,它会回答您的问题。
char[] charArray = text.toLowerCase().replaceAll( "[^\\p{Lower}]","" ).toCharArray();