本文介紹了如何檢查兩個字符串是否為字謎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
以下是我的項目的詳細信息:
字謎:這個項目的目標是創建一個游戲,在這個游戲中,用戶可以看到
一個單詞的變形詞,必須在有限的數量中猜出正確的單詞
嘗試。
項目特點:
-
用戶被給予一定次數的嘗試來猜測正確的單詞。數字
嘗試次數取決于單詞的長度。
每次錯誤嘗試后,系統都會向用戶提供正確單詞的提示。
如果用戶無法在固定的嘗試次數內猜到正確的單詞,則
顯示正確的單詞,游戲進入下一個單詞。
提供退出游戲的控件。
我面臨的問題:
我可以從字符串數組中提取一個隨機字詞,但無法將其與輸出進行比較,因為輸出是一個普通字符串。我想知道如何解決這個問題,以及我應該如何繼續,我不需要提示部分的答案,我只想知道如何比較兩種類型的字符串。
import java.util.Arrays;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.*;
import java.util.Scanner;
import java.util.*;
public class main {
String A = "words[index]";
static boolean isAnagram(String A, String B) {
if (A.length() != B.length()) {
return false;
} else {
char a[] = A.toLowerCase().toCharArray();
char b[] = A.toLowerCase().toCharArray();
Arrays.sort(a);
Arrays.sort(b);
String sortedA = String.valueOf(a);
String sortedB = String.valueOf(B);
if (sortedA.equals(sortedB)) {
}
}
return false;
}
public static void main(String[] args) {
String[] words = {"Rat", "Car", "Below", "Taste", "Cried", "Study", "Thing", "Chin"};
Random random = new Random();
int index = random.nextInt(words.length);
System.out.println("The given word is: " + words[index]);
Scanner sc = new Scanner(System.in);
String B = sc.next();
if (isAnagram(String A, String B)) {
System.out.println("not an angram");
} else {
System.out.println("Sucess");
}
}
}
推薦答案
使用集合檢查兩個字符串是否為字謎:
package StringPackage;
import java.util.*;
public class AnagramUsingCollections {
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] string1 = "aab".toCharArray();
char[] string2 = "baa".toCharArray();
Map<Character, Integer> hm = new HashMap<>();
for (char no : string1) {
//for start
Integer count = hm.get(no);
if (count == null) {
hm.put(no, 1);
} else {
count++;
hm.put(no, count);
}
//for end
}
if (string1.length == string2.length) {
for (char no : string2) {
//baa
Integer count = hm.get(no);
if (count == null) {
hm.put(no, 1);
} else {
count--;
hm.put(no, count);
}
}//for end
}
Set<Map.Entry<Character, Integer>> se = hm.entrySet();
for (Map.Entry<Character, Integer> me : se) {
if (me.getValue() > 0) {
System.out.println("Not an anagram");
break;
} else {
System.out.println("IS an anagram");
break;
}
}
}
}
這篇關于如何檢查兩個字符串是否為字謎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,