disons que j'ai un fichier txt contenant:
john
dani
zack
l'utilisateur entrera une chaîne, par exemple "omar" Je veux que le programme recherche dans ce fichier txt la chaîne "omar". S'il n'existe pas, affiche simplement "n'existe pas".
J'ai essayé la fonction String.endsWith () ou String.startsWith (), mais celle-ci affiche bien sûr "n'existe pas" 3 fois.
J'ai commencé Java il y a seulement 3 semaines, donc je suis un débutant total ... s'il vous plait, gardez avec moi ... Merci.
Il suffit de lire ce fichier texte et de placer chaque mot dans une variable List
et de vérifier si cette variable List
contient votre mot.
Vous pouvez utiliser Scanner scanner=new Scanner("FileNameWithPath");
pour lire le fichier et essayer de suivre pour ajouter des mots à List
.
List<String> list=new ArrayList<>();
while(scanner.hasNextLine()){
list.add(scanner.nextLine());
}
Alors vérifiez que votre Parole est là ou pas
if(list.contains("yourWord")){
// found.
}else{
// not found
}
BTW vous pouvez rechercher directement dans le fichier aussi.
while(scanner.hasNextLine()){
if("yourWord".equals(scanner.nextLine().trim())){
// found
break;
}else{
// not found
}
}
utilisez String.contains(your search String)
au lieu de String.endsWith()
ou String.startsWith()
par exemple
str.contains("omar");
Vous pouvez aller autrement. Au lieu d'imprimer 'n'existe pas', print 'existe' si une correspondance est trouvée lors de la traversée du fichier et de la rupture; Si l'intégralité du fichier est parcourue et qu'aucune correspondance n'a été trouvée, affichez alors «n'existe pas».
Utilisez également String.contains()
à la place de str.startsWith()
ou str.endsWith()
. La vérification de contenu contient une correspondance dans toute la chaîne et pas seulement au début ou à la fin.
J'espère que cela a du sens.
Vous pouvez le faire avec Files.lines
:
try(Stream<String> lines = Files.lines(Paths.get("...")) ) {
if(lines.anyMatch("omar"::equals)) {
//or lines.anyMatch(l -> l.contains("omar"))
System.out.println("found");
} else {
System.out.println("not found");
}
}
Notez qu'il utilise le jeu de caractères UTF-8 pour lire le fichier. Si ce n'est pas ce que vous voulez, vous pouvez passer votre jeu de caractères comme second argument à Files.lines
.
Lisez le contenu du fichier texte: http://www.javapractices.com/topic/TopicAction.do?Id=42
Et après cela, utilisez simplement la méthode textData.contains(user_input);
, où textData
est la donnée lue dans le fichier et le user_input
la chaîne recherchée par l'utilisateur
METTRE &AGRAVE; JOUR
public static StringBuilder readFile(String path)
{
// Assumes that a file article.rss is available on the SD card
File file = new File(path);
StringBuilder builder = new StringBuilder();
if (!file.exists()) {
throw new RuntimeException("File not found");
}
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return builder;
}
Cette méthode retourne le StringBuilder créé à partir des données que vous avez lues à partir du fichier texte donné en paramètre.
Vous pouvez voir si la chaîne de saisie de l'utilisateur est dans le fichier comme ceci:
int index = readFile(filePath).indexOf(user_input);
if ( index > -1 )
System.out.println("exists");