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