gpt4 book ai didi

java - 如何通过char数组查找String数组?

转载 作者:行者123 更新时间:2023-11-29 06:49:25 25 4
gpt4 key购买 nike

我想在不使用字典库的情况下构建一个简单的字典搜索程序。如果数组中的字符串等于 char 数组,我想搜索字符串数组。它应该打印字符串及其索引号。如果有 2 个字符串与 char 匹配,那么它应该打印第一个字符串并保留后面的字符串

.e.g 字符串数组 ["fine","re​​st","door","shine"] 字符字符 ['t','r','e','s']。答案应该是索引 1 处的“rest”。如果 String rest 是重复的,那么它应该只打印第一个。

我尝试比较字符串数组和字符数组,但它返回了字符串数组中与字符数组匹配的所有单词。

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;
}
}
}

}

关于java - 如何通过char数组查找String数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53994996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com