Récuperer String en java [Résolu/Fermé]

Signaler
Messages postés
949
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
-
Messages postés
949
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
-
Bonjour,
Est-ce que quelqu'un sait comment on fait pour récupérer un String en console en java?
J'ai déja essayé la commande sc.nextString();
Mais lors de la compilation, il me mets:

prog.java:330: cannot find symbol
symbol : method nextString()
location : class java.util.Scanner
________scorer [tmp] = sc.nextString();
______________________^
Ca veut bien dire que la classe nextString n'existe pas pourtant j'ai fait
import java.util.Scanner; au début de mon programme
et aussi
Scanner sc = new Scanner (System.in);
De plus, j'ai vu dans d'autres topics qu'ils utilisaient cette commande.
Je ne sais vraiment pas ce qui ne marche pas. Aidez moi, s'il vous plait.

7 réponses

Messages postés
15984
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
10 août 2020
2 650
Regarde la documentation, tu verras qu'effectivement la méthode nextString n'existe pas, essayes plutôt nextLine
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57027 internautes nous ont dit merci ce mois-ci

Messages postés
949
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
175
Merci , je vais essayer.
Je reviendrais pour classer en résolu si ca marche.
Messages postés
949
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
175
J'ai pas réussi à trouver comment on se sert readline.
En revanche maintenant je me sers de sc.next()
Et ca marche!
Messages postés
15984
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
10 août 2020
2 650
L'utilisation de nextLine n'a rien de compliqué, en voici un exemple :

import java.util.Scanner;

public class Ccm_aramir
{
	public static void main(String args[])
	{
		Scanner sc=new Scanner(System.in);
		System.out.print("\nEntrer une ligne : ");
		String s=sc.nextLine();
		System.out.println("La ligne est : "+s);
	}
}
Messages postés
949
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
175
ok merci.
mais quel est la difference avec sc.next
Messages postés
15984
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
10 août 2020
2 650
La différence exacte je ne sais pas, mais il y a quelques propriétés différentes :

next cherche le prochain élément qui correspond au pattern, il faut donc préciser ce pattern avec useDelimiter avant de faire appel à next

next est bloquante, c'est à dire que s'il n'y a pas d'entrée (hasNext()==false), il attend qu'il y en ai une, alors que nextLine renverrai une exception NoSuchElementException

Pour être tout à fait équivalent au précédent voici le code qu'il faudrait mettre pour next :

import java.util.Scanner;

public class Ccm_aramir
{
	public static void main(String args[])
	{
		Scanner sc=new Scanner(System.in).useDelimiter("\\n");
		System.out.print("\nEntrer une ligne : ");
		if (sc.hasNext())
		{
			String s=sc.next();
			System.out.println("La ligne est : "+s);
		}
		else System.out.println("Pas de ligne a afficher");
	}
}
Messages postés
949
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
26 décembre 2016
175
OK merci beaucoup, réponse claire courte, c'est parfait !
enfin quelqu'un qui résout un de mes post (et même plus) sur commentcamarche. ^^