我有以下的代碼,需要2個字符串作爲輸入,並返回布爾他們是否是字謎:結束語switch語句在一個整潔的循環在Java中
import java.util.ArrayList;
import java.util.Scanner;
public class AnagramChecker {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.print ("Enter string 1: ");
String str1 = sc.nextLine();
System.out.print ("Enter string 2: ");
String str2 = sc.nextLine();
boolean check = isAnagram (str1, str2);
System.out.println ("Anagram check for '" + str1 + "' and '" + str2 + "': " + check);
sc.close();
}
public static boolean isAnagram (String s1, String s2) {
if(s1.length() != s2.length())
return false;
s1 = s1.toLowerCase();
s2 = s2.toLowerCase();
ArrayList<String> myList = new ArrayList<String>();
for(int i = 0; i < s2.length() ; i++){
myList.add(String.valueOf(s2.charAt(i)));
}
for(int i = 0; i < s1.length();i++){
for(int j = 0; j < myList.size(); j++){
if(myList.get(j).equals(String.valueOf(s1.charAt(i)))){
myList.remove(j);
j = 0;
break;
}
}
}
return myList.isEmpty();
}
}
這是比較有限的,雖然,我試圖將它擴大到以下情況下工作: - 不同的情況下,即eager == AGREE
- 一個字與空格,即eager == a g ree
- 不同量的空白即" eager" == agree
是否有這個整合到一個非常乾淨的方式已經寫了上面的代碼,沒有太多的痛苦和重寫。任何幫助非常感謝。謝謝。
您想要以不同方式處理它們,還是隻刪除每個空格並將字符串轉換爲小寫? – Tom
您已經處理了混合大小寫。你可以刪除所有的空格。 –
能夠比較字符串,無論他們在多少空間和位置(前面/中間/後面的字符串)是我最初想到的 – cslecturect