Mostrar primeira e última palavra de uma String

[quote=DCdantas]Eu queria saber como crio um programinha que receba do teclado uma frase, e informe qual a primeira palavra e depois última?
Imagino que devo usar o Substring, mas não consigo!!! Agradeço quem puder me ajudar! :roll: [/quote]

Ei galera valeu pela ajuda mais é porque não faz nem um mês que comecei a estudar Java e não sei aplicar ainda estes métodos mais complexos.
É o seguinte, eu consegui fazer com que ele mostre a primeira palavra, vou postar abaixo para vocês entenderem, quero fazer com que ele mostre a última agora, mas não estou conseguindo. Fiz dessas duas maneiras

	[color=red]public static void main(String[] args) {
	String frase, primeirapalavra, letra;
	int i;
	Receba R = new Receba();

	System.out.println("Digite a frase:");
	frase = R.RecebaString();

	primeirapalavra = "";
	for (i = 0; i <= frase.length()-1; i--) {
	letra = frase.substring(i, i + 1);
	if (!letra.equals(" "))
	primeirapalavra = primeirapalavra + letra;
	else{
		break;
	}

	System.out.println("Primeira Palavra digitada na Frase: ");
	System.out.println(primeirapalavra);

	}
	}
}[/color]



[color=green]public static void main(String[] args) {
String frase, primeirapalavra, letra;
int i;
Receba R = new Receba();

System.out.println("Digite a frase:");
frase = R.RecebaString();

primeirapalavra = "";
i = 0;
while (i <= frase.length() - 1) {
letra = frase.substring(i,i+1);
if ( ! letra.equals(" ") ){
primeirapalavra = primeirapalavra + letra;
i = i - 1;
}else{
	break;
}

System.out.println( "Primeira palavra da Frase: " );
System.out.println(primeirapalavra);
}
}

}
[/color]

[quote=DCdantas]Eu queria saber como crio um programinha que receba do teclado uma frase, e informe qual a primeira palavra e depois última?
Imagino que devo usar o Substring, mas não consigo!!! Agradeço quem puder me ajudar! :roll: [/quote]

As palavras vem separadas por espaço em branco?

Dá uma olhada no método split da classe String. Aplica ele à sua frase e ele te retorna um array contendo as palavras separadas em cada posição. Aí basta você pegar a primeira e a última posição do array né.

Cara, muito simples, em uma frase as palavras usam um separador, que seria o espaço em branco, correto?
O que você tem que fazer é separar sua frase em tokens com esse critério de separação (espaços em branco) e então pegar o primeiro e o último token.
Dica: de uma olhada no método split da classe String.

edit: nota pessoal: nunca mais sairei da minha cadeira “só por aqueles 5 minutos” antes de pressionar “enviar” hehehe

Olá.

Assim:

String text = "Testando o código"; String[] s = text.trim().split(" "); System.out.println("Primeira: "+s[0]); System.out.println("Ultima: "+s[s.length-1]);

Espero ter ajudado. Abraços. :slight_smile:

ae rapa, recebendo do usuário via JOptionPane e usando o substring.

public static void main(String[] args) {
String a = JOptionPane.showInputDialog(“Digite uma palavra”);
if(a!="" && a!= null){
System.out.println("primeira: " + a.substring(0, 1) + " ultima: " + a.substring(a.length()-1, a.length()));
}
}

flww

[quote=caue.marcondes]ae rapa, recebendo do usuário via JOptionPane e usando o substring.

public static void main(String[] args) {
String a = JOptionPane.showInputDialog(“Digite uma palavra”);
if(a!="" && a!= null){
System.out.println("primeira: " + a.substring(0, 1) + " ultima: " + a.substring(a.length()-1, a.length()));
}
}

flww[/quote]

Ele quer a palavra não a letra… :shock:

Outra Solução.

String texto = "Mathias Roberto Back";
		int indexu = texto.lastIndexOf(" ");
		int indexp = texto.indexOf(" ");
		System.out.println(indexp+" "+texto.substring(0,indexp));
		System.out.println(indexu+" "+texto.substring(indexu));

Ta ai ó:

public static void main(String[] args) {
String a = JOptionPane.showInputDialog(“Digite uma palavra”);
if(a!="" && a!= null){
System.out.println(“primeira: " + a.substring(0, a.indexOf(” “)) + " ultima: " + a.substring(a.lastIndexOf(” "), a.length()));
}
}

[quote=DCdantas]Eu queria saber como crio um programinha que receba do teclado uma frase, e informe qual a primeira palavra e depois última?
Imagino que devo usar o Substring, mas não consigo!!! Agradeço quem puder me ajudar! :roll: [/quote]

Ei galera valeu pela ajuda mais é porque não faz nem um mês que comecei a estudar Java e não sei aplicar ainda estes métodos mais complexos.
É o seguinte, eu consegui fazer com que ele mostre a primeira palavra, vou postar abaixo para vocês entenderem, quero fazer com que ele mostre a última agora, mas não estou conseguindo.

[size=12][color=red]public static void main(String[] args) {
String frase, primeirapalavra, letra;
int i;
Receba R = new Receba();

System.out.println("Digite a frase:");
frase = R.RecebaString();

primeirapalavra = "";
i = 0;
while (i <= frase.length() - 1) {
letra = frase.substring(i,i+1);
if ( ! letra.equals(" ") ){
primeirapalavra = primeirapalavra + letra;
i = i - 1;
}else{
	break;
}
int indexu = frase.lastIndexOf(" ");
System.out.println( "Primeira palavra da Frase: " );
  System.out.println(indexu+" "+frase.substring(indexu)); 
}
}

}[/color][/size]

Cara não precisa usar for nem while nem nenhum loop para isso. É só usar o lastIndexOf pra achar o ultimo ‘espaço’.

a.substring(a.lastIndexOf(" "), a.length());

Ai vc usa o substring com a posição do ultimo ‘espaço’ até o length da string.

boa sorte ai!!