gpt4 book ai didi

java - java - 如何在数组字符串中查找元素

转载 作者:行者123 更新时间:2023-12-04 08:33:43 25 4
gpt4 key购买 nike

原问题posted in Spanish, on es.stackoverflow.com , 来自 Fernando Méndez :

Ask for a name to search for, read that name from the keyboard and gothrough the array to verify if it exists, if it is found, show amessage indicating that if the name x is found, otherwise, show alegend, the name x is not found.

This is my code but when executing and comparing the elements it onlytakes the last element of the array and that is the one that comparesthe others are omitted.

package arrreglo_practicas;

import java.util.Arrays;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class Arrreglo_Practicas {


public static void main(String[] args) {


Scanner input = new Scanner(System.in);

String busqueda = "";
int elements = 0 ;
String aux = null ;
//tomando el valor e insertarlo en el arreglo

elements = Integer.parseInt(JOptionPane.showInputDialog( "digite la cantidad de elementos del areglo "));
//arreglo de "n" elementos

String [] arreglo = new String [elements];

//recorriendo el arreglo para que tome los valores

for (int x = 0; x <arreglo.length; x++){
System.out.print("|ingresa los nombres| ");
aux = input.nextLine();
arreglo[x] = aux;
}
//búsqueda inicial
busqueda = JOptionPane.showInputDialog(null," busca un nombre:");

//parte que se ejecuta mal

if (busqueda.equals(aux)){
for (int a = 0; a < aux.length(); a++)
System.out.println("si se encuentra el nombre:");

}else {

JOptionPane.showMessageDialog(null,"dicho nombre no existe: ");
}

}

}

最佳答案

您需要使用每个输入数组值一一检查 for 循环内的相等性。

//parte que se ejecuta mal
boolean isMatch = false;

for (int a = 0; a < arreglo.length; a++) {
if (busqueda.equalsIgnoreCase(arreglo[a])) {
isMatch = true;
System.out.println("si se encuentra el nombre:");
}
}

if (!isMatch)

{
JOptionPane.showMessageDialog(null, "dicho nombre no existe: ");
}
Java 8(根据 paulsm4 在评论中的建议):
在带有 Stream 的 Java8 中,您可以执行以下操作:
//parte que se ejecuta mal
final Optional<String> optionalMatched = Arrays.stream(arreglo).filter(a -> a.equalsIgnoreCase(busqueda))
.findFirst();

if (optionalMatched.isPresent()) {
System.out.println("si se encuentra el nombre:");
} else {
JOptionPane.showMessageDialog(null, "dicho nombre no existe: ");
}
但另外你需要更新 busqueda声明如下,使其成为最终的。
String busqueda;

关于java - java - 如何在数组字符串中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64906850/

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