Separação de string a partir de espaço

19 respostas Resolvido
Josue_Teodoro_Moreir

Boa tarde, poderiam me ajudar em separar uma string a partir do espaço

por exemplo:

String order = entry.nextLine();
 //entry é meu java.util.scanner

o que eu quero que aconteça e que se a pessoa digitar “abc de”, somente vai retornar abc, ou seja, recortar pra frente da primeira palavra, assim que for detectado um espaço, sendo que eu não sei o que vai ser digitado.

19 Respostas

darlan_machado

next()

Josue_Teodoro_Moreir

como assim?

darlan_machado

O método next da classe Scanner lê, apenas, a primeira sequência de caracteres, até encotntrar \n (enter) ou espaço ou tab.

Rodrigo_Void

String order = entry.next();

Josue_Teodoro_Moreir

nao, o que eu quero é cortar o que está apos o primeiro o primeiro espaço, não importando o tamanho do recebido ao valor order

darlan_machado

Fera “cortar” seria o que? Seja claro, dê exemplos

Rodrigo_Void

Vc vai usar oq tiver depois do primeiro espaço?

Josue_Teodoro_Moreir

desculpem, seria como repartir essa string

Josue_Teodoro_Moreir

não, nao vou usar o restante

darlan_machado

Olha, você tem sérios problemas com ser claro.

Enfim, se você quer ler só a parte anterior ao espaço, use o next.
Senão, leia com nextLine e use o split(" "); para dividir a String em um array de String.

Josue_Teodoro_Moreir

um exzemplo seria

frase inteira = “abc de”

frase ‘cortada’ = só o " abc"
sem o de e qualquer outra coisa que estivesse apos o primeiro espaço da string

Josue_Teodoro_Moreir

me desculpem novamente, sou apenas um iniciante em programação em java, e só tenho 13 anos

darlan_machado
Solucao aceita

Se for ler uma única vez e apenas uma String, use o método next.
Agora, se vai ler em loop ou se vai ler informações depois, opte pelo nextLine e utilize o split(" ")[0] para pegar a primeira parte.

Josue_Teodoro_Moreir

Muito obrigado, ajudou muito

Rodrigo_Void

Se não vai usar o restante, pq n pode usar o next pra ler?

marco_aurelioo

Tenta pegar o retorno e aplicar um filtro

public static void main(String[] args) {

String[] entradas = {ead asd 123,1234,sdasda adaasdadasda};

Pattern p = Pattern.compile("([^\s]*)\s?");
for(String entrada:entradas) {
	String[] arrStr = entrada.split(" ");
	System.out.println(arrStr[0]);
	Matcher m = p.matcher(entrada);
	if(m.find()) {
		System.out.println(m.group(1));
	}
}

}

tem duas formas com split por espaço ou com regexp as duas funcionam

Josue_Teodoro_Moreir

simplesmente por que ã pessoa pode digitar o que que quiser, o computador só vai precisar da primeira palavra

Rodrigo_Void

Sim, mas ela vai poder. Já testou com o next?
Com o next recomendo sempre usar um Scanner novo:
String var = new Scanner(System.in).next();

Josue_Teodoro_Moreir

nossa, nem pensei sobre isso, acho que preciso estudar um pouco mais kkkkk

Criado 1 de junho de 2018
Ultima resposta 1 de jun. de 2018
Respostas 19
Participantes 4