Итак, у меня есть текстовый файл с именами президентов, который нужно прочитать, а затем пользователь может ввести имя президента (имя или фамилия) и то все президенты с указанным именем (первым или последним) должны отображаться на экране.Распечатайте определенные символы из массива на основе ввода пользователя
Вот код:
import java.util.*;
import java.io.*;
public class NameSearch {
public static void main(String[] args) throws IOException {
try {
// read from presidents file
Scanner presidentsFile = new Scanner(new File("Presidents.txt"));
Scanner keyboard = new Scanner(System.in);
// create array list of each line in presidents file
ArrayList<String> linesInPresidentsFile = new ArrayList<String>();
String userInput = keyboard.nextLine();
// add president file info to array list linesInPresidentFile
while (presidentsFile.hasNextLine()) {
linesInPresidentsFile.add(presidentsFile.nextLine());
}
for (int i = 0; i < linesInPresidentsFile.size(); i++) {
// store elements in array list into array literal
String presidentNames[] = linesInPresidentsFile.toArray(new String[i]);
if (presidentNames[i].toLowerCase().contains(userInput.toLowerCase())) {
String splitInfoElements[] = presidentNames[i].split(",", 3);
System.out.println(splitInfoElements[0] + " " + splitInfoElements[1] + " " + splitInfoElements[2].replace(",", " "));
}
}
} catch (FileNotFoundException ex) {
// print out error (if any) to screen
System.out.println(ex.toString());
}
}
}
Ok, так что все работает как надо, за исключением Я хотел бы, что если кто-то типы в типа «сортир», например. он печатает президентов, которых зовут Джон, а не президентов, у которых есть строка «john» от их имени.
Если у кого-то есть указатели, они были бы очень признательны!
Мог бы сделать это с помощью регулярных выражений, где имя президента совпадает с регулярным выражением «\ bjohn \ Ъ», который будет соответствовать слову «Джон» – DBug
Не знакомому с регулярным выражением, так что не будет даже знать, с чего начать, как далеко как это происходит. Спасибо tho ... – Lushmoney
Просто используйте String.contains(), чтобы выполнить поиск, он должен найти строку, если ее начало заканчивается или посередине – Nanoc