【发布时间】:2022-01-02 08:15:16
【问题描述】:
我尝试编写一个程序来检测一个给定 2 个字符串的字谜。
我的方法是将两个字符串都转换为 char 数组,然后在比较它们之前对它们进行排序。
我知道我可以使用 sort() 函数,但我不想将任何导入用于培训目的。
问题是我希望我的程序在扫描字谜时忽略空格。 在当前版本中,输出是这样的: (三角形,相关)--->真 (三角形,相关)--->错误
虽然它应该都是真的。
如果有任何帮助,我将不胜感激!
这是我的代码,(请忽略我的 cmets):
public static boolean anagramCheck(String a, String b) {
boolean r = true;
// In Char Arrays umwandeln /
char[] Ca = a.toCharArray();
char[] Cb = b.toCharArray();
// Laengen Abfrage
int L1 = Ca.length;
int L2 = Cb.length;
// Erste For-Schleife
for (int i = 0; i < L1; i++) {
for (int j = i + 1; j < L1; j++) {
if (Ca[j] < Ca[i]) {
char temp = Ca[i];
Ca[i] = Ca[j];
Ca[j] = temp;
}
}
}
// Zweite For-schleife
for (int i = 0; i < L2; i++) {
for (int j = i + 1; j < L2; j++) {
if (Cb[j] < Cb[i]) {
char temp = Cb[i];
Cb[i] = Cb[j];
Cb[j] = temp;
}
}
}
// Char Arrays zu Strings
String S1 = String.valueOf(Ca);
String S2 = String.valueOf(Cb);
// Vergleich und Ausgabe
if (S1.compareTo(S2) == 0) {
return r;
}
else {
r = false;
return r;
}
}
}
【问题讨论】:
-
在转换为数组之前去掉空格:
char[] Ca = a.replaceAll("\\s", "").toCharArray();
标签: java arrays string loops sorting