¡¡Urgente! 100 puntos, más 100 por la respuesta correcta!! Una pregunta de programación sobre delimitador en java. Cuanto más completa sea la recopilación, mejor
Volveré al mediodía y te escribiré todo. Se agrega un poco de juicio al programa. Si la cadena ingresada no cumple con los criterios, le pedirá que vuelva a ingresar hasta ingresar n nombres por completo
importar java.util.Scanner;
public class ArrayOfStringsDemo {
public static void main(String[] args) {
final int n = 3 //Escribe un int n, n representa cuántos nombres que hay
Name[] testArray = new Name[n];//Crea una matriz con clase Name, tamaño n y nombre testArray
int count = 0; p>
//Ingrese y lea la cadena en el formato anterior, hay n nombres en uno ***
while(count < n){
System.out .println(" Ingrese el nombre, use / para separar el nombre y el apellido, use # para finalizar la entrada del nombre");
Scanner scanner = new Scanner(System.in);
String nameStr = scanner.nextLine().trim();
if(nameStr.matches("\\w+/\\w+#")){//Utilice / después del nombre y # en el final del apellido.
String[] nombres = nameStr.split("/");
//Para cada par de cadenas ingresadas correctamente, crea un objeto Name y deja que se convierta en el elemento testArray Next
testArray[count++] = new Nombre(nombres[0], nombres[1].substring(0, nombres[1].length() - 1));
} else{
System.out.println("Formato de nombre incorrecto, ¡ingréselo nuevamente!");
}
}
Nombre targetName = new Name("David", "Smith");//Nombre de la prueba 1, en matriz
Name targetName2 = new Name("Name", "Chinese");/ /Nombres de prueba in array
int index1 = findName(testArray, targetName);
if(index1 == 1){
System.out. David se puede encontrar en la matriz");
}else{
System.out.println("Smith/David no está en la matriz");
}
int index2 = findName(testArray, targetName2);
if(index2 == 1){
System.out .println("Nombre /Chino se puede encontrar en la matriz");
}else{
System.out.println("Nombre/Chino no está en la matriz") ;
}
}
//Crea un método estático llamado findName, que contiene dos argumentos, el primero es una matriz de tipo Nombre,
// El segundo es un nombre. Cuando el nombre y el apellido en la matriz son iguales que el segundo nombre,
//findName devuelve el índice de la primera matriz.
Si es diferente, devuelve -1
private static int findName(Name[] testArray, Name targetName) {
for(int i = 0; i < testArray.length; i++){
Nombre nombre = testArray[i];
if(nombre.getForename().equals(targetName.getForename()) && nombre.getApellido().equals(targetName.getApellido ())){
return i;//Idéntico, índice de retorno
}
}
return -1;/ / No encontrado devuelve -1
}
}
nombre de clase{//nombre clase
cadena privada nombre de pila; p>
apellido de cadena privada;
nombre público (nombre de cadena, apellido de cadena){
this.forename = nombre;
this.surname = apellido;
}
public String getForename() {
return nombre;
}
public String getApellido( ) {
return apellido;
}
}
------------- -Prueba
Ingrese el nombre, use / para separar el nombre y el apellido, use # para finalizar la entrada del nombre
assdfkl;/asdkfsa;#
Formato de nombre incorrecto, ¡ingrese de nuevo!
Por favor ingrese el nombre, use / para separar el nombre y el apellido, use # para finalizar la entrada del nombre
abcdef/1234#
Por favor ingrese nombre, use / para separar el nombre y el apellido, use # para finalizar la entrada del nombre
David/Smith#
Ingrese el nombre, use / para separar el nombre y el apellido, use # para finalizar la entrada del nombre
Nombre/Inglaterra#
Smith/David se puede encontrar en la matriz
Nombre/Chino no está en la matriz p>