How can I check if two strings are anagrams?(如何检查两个字符串是否为字谜?)
本文介绍了如何检查两个字符串是否为字谜?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是我的项目的详细信息:
字谜:这个项目的目标是创建一个游戏,在这个游戏中,用户可以看到
一个单词的变形词,必须在有限的数量中猜出正确的单词
尝试。
项目特点:
- 用户被给予一定次数的尝试来猜测正确的单词。数字 尝试次数取决于单词的长度。
- 每次错误尝试后,系统都会向用户提供正确单词的提示。
- 如果用户无法在固定的尝试次数内猜到正确的单词,则 显示正确的单词,游戏进入下一个单词。
- 提供退出游戏的控件。
我面临的问题:
我可以从字符串数组中提取一个随机字词,但无法将其与输出进行比较,因为输出是一个普通字符串。我想知道如何解决这个问题,以及我应该如何继续,我不需要提示部分的答案,我只想知道如何比较两种类型的字符串。
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;
}
}
}
}
这篇关于如何检查两个字符串是否为字谜?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何检查两个字符串是否为字谜?
基础教程推荐
猜你喜欢
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 在螺旋中写一个字符串 2022-01-01