java - 如何通过char数组搜索String数组?
问题描述
我想在不使用字典库的情况下构建一个简单的字典搜索程序。如果数组中的字符串等于 char 数组,我想搜索字符串数组。它应该打印字符串及其索引号。如果有 2 个字符串与 char 匹配,那么它应该打印第一个字符串并留下后面的字符串
.eg String array["fine","rest","door","shine"] char 字符 ['t','r','e','s']。答案应该是索引 1 处的“休息”。如果字符串休息是重复的,那么它应该只打印第一个。
我试图比较字符串数组和字符数组,但它返回与字符数组匹配的字符串数组的所有单词。
String strArray[]=new String[4];
char chrArray[]=new char[4];
String value="";
char compare;
System.out.println("Enter the words :");
for(int i=0;i<strArray.length;i++){
strArray[i]=input.next();
}
System.out.println("Enter the Characters :");
for (int i = 0; i < chrArray.length; i++) {
chrArray[i]=input.next().charAt(0);
}
for (int i = 0; i < strArray.length; i++) {
if(strArray[i].length()==chrArray.length){
if(""+strArray[i]!=value){
value="";
}
for (int j = 0; j < strArray[i].length(); j++) {
for (int k = 0; k < chrArray.length; k++) {
if(strArray[i].charAt(j)==chrArray[k]){
value=value+strArray[i].charAt(j);
}
}
}
}
}
System.out.println(value);
输出应该是数组中等于 char 数组的字符串。
解决方案
您可以对 char 数组进行排序,然后使用Arrays.equal
. 通过对 char 数组进行排序,将无需使用 2 个 for 循环。
import java.util.Arrays;
import java.util.Scanner;
public class Bug {
public static void main(String[] args) {
String strArray[]=new String[4];
char chrArray[]=new char[4];
Scanner input = new Scanner(System.in);
System.out.println("Enter the words :");
for(int i=0;i<strArray.length;i++){
strArray[i]=input.next();
}
System.out.println("Enter the Characters :");
for (int i = 0; i < chrArray.length; i++) {
chrArray[i]=input.next().charAt(0);
}
Arrays.sort(chrArray);
for (int i = 0; i < strArray.length; i++) {
char[] x = strArray[i].toCharArray();
Arrays.sort(x);
if(Arrays.equals(chrArray, x))
{
System.out.println(strArray[i]);
break;
}
}
}
}
推荐阅读
- typescript - 打字稿覆盖深键
- sql - 如何从查询结果中删除重复的结果?
- c# - WCF SSL .pfx 绑定
- nuxt.js - Nuxt - 来自 nuxt-child 的非嵌套页面
- sqlite - .contains 字符串的 SQLAlchemy 查询
- flutter - Calling a method with Provider.of(context) inside of dispose() method cause "Looking up a deactivated widget's ancestor is unsafe."
- polynomials - 多项式向量,每个定义为一个函数
- mysql - 在 AWS 上的 Lambda 中重用 Mysql 连接
- xamarin - not able to add .ipa file in iphone device
- python - unit test with pytest does not work on Jenkins: ERROR: script returned exit code 2