String em Java. Procurar um caracter

gostaria de saber como declarar uma string em java e correr o vetor de string para achar um caracter

tipo assim ó. (está em C)

char str[1000]; scanf("%s",&str); for(int i=0; i<strlen(str); i++) { if(str[i] == 'a') // mostrar caracter na tela }

vi que a string é declarada como ‘string’ mesmo, mas nao consegui fazer a parte de entrar com a string e mostrar na tela.

Use o que já está pronto (o método indexOf da classe java.lang.String.)

Por favor, consulte sempre a documentação:

http://java.sun.com/javase/6/docs/api/java/lang/String.html

1 curtida

Cara a própria classe String em java, tem um método indexOf(); que vc consegue utiliza-lo para buscar um caracter na String. de uma olhada nesse método:

http://java.sun.com/javase/6/docs/api/java/lang/String.html#indexOf(java.lang.String)

1 curtida

Segue para ler do console

		Scanner s = new Scanner(System.in);
		System.out.print("Digita aí " );
		String texto = s.nextLine();

[quote=entanglement]Use o que já está pronto (o método indexOf da classe java.lang.String.)

Por favor, consulte sempre a documentação:

http://java.sun.com/javase/6/docs/api/java/lang/String.html[/quote]

Vixi, respondemos juntos =/

1 curtida

[code]String s = “Hello World!”;

char c = ‘d’;

for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c) {
System.out.println ©;
}
}[/code]

Isso ae vai pegar a string "Hello World!" e vai procurar o char "d" nessa String.

[quote=claudneto][code]String s = “Hello World!”;

char c = ‘d’;

for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c) {
System.out.println ©;
}
}[/code]

Isso ae vai pegar a string "Hello World!" e vai procurar o char "d" nessa String.[/quote]

Faz isso não mano. Usa o indexOf q a gente falou ae.

[code]
String s = “Hello World”;

if(s.indexOf(“d”) != -1){ //Se for diferente de -1 é pq existe o caracter.
System.out.println ©;
}[/code]

indexOf acho mais elegante.

[quote=Poneis123]Faz isso não mano. Usa o indexOf q a gente falou ae.

[code]String s = “Hello World”;

if(s.indexOf(“d”) != -1){ //Se for diferente de -1 é pq existe o caracter.
System.out.println ©;
}[/code][/quote]
tá… mas segundo o código de exemplo (em C) ele não queria apenas o índice do primeiro caracter encontrado.
Então, por que não usar o charAt dentro do for? E se ele quiser saber todas as ocorrências do “l” por exemplo?

Boa sorte!

wellington.nogueira e mspereira ta certo… confesso q não li o código q ele postou… mal ae… mas ta ai 2 soluções: Para saber se contem um determinado caracter na String use o indexOf, para saber quantos contem use o for com charAt(). =P

Aproveitando a deixa, uma outra forma de fazer isso seria:

[code]
String texto = “FASDFASDFASD”;

String textoArray[] = texto.split("F"); // F é o caracter q vc busca

System.out.println(textoArray.length - 1);  [/code]Simples tb, e fica disponivel caso vc queira não só procurar 1 caracter, mas uma string. Por exemplo saber qtas vezes aparece "FA" nesta string.

Abrs.

[quote=claudneto][code]String s = “Hello World!”;

char c = ‘d’;

for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c) {
System.out.println ©;
}
}[/code]

Isso ae vai pegar a string "Hello World!" e vai procurar o char "d" nessa String.[/quote]
Recomendo fortemente que não faça isso, usar a recursividade nesse caso é 1 pleonasmo…
Sempre quando puder evitar recursividade Evite.
Use o método indexOf

e se eu quiser que o usuário entre com a string? qual comando uso?
vi que esse comano abaixo é de entrada.
serie ele? System.in.//+ algo?

Como? Assim?[quote=thiago.correa]
Segue para ler do console

Scanner s = new Scanner(System.in); System.out.print("Digita aí " ); String texto = s.nextLine();[/quote]
Boa sorte!

[quote=eltonbonato]e se eu quiser que o usuário entre com a string? qual comando uso?
vi que esse comano abaixo é de entrada.
serie ele? System.in.//+ algo?[/quote]

Se você testar o exemplo que eu coloquei aqui, verá como é que se lê um texto do console!

Pra vc ler algo do console é assim:

Scanner scn = new Scanner(System.in); System.out.print("Digita uma string: " ); String texto = scn.nextLine(); System.out.print("Digita uma numero: " ); int numero = scn.nextInt(); //não sei se o i é maiúsculo, to sem IDE agora

Falar para usar apenas o indexOf não resolve o problema sugerido pois retornará apenas a primeira ocorrência e não todas as ocorrências (não há um break no loop).

A solução do claudneto é a que mais se aproxima da proposta.

Se quiser que seja independente de ser Upper ou Lowercase, segue:

		String str = "sAlada"; //repare o primeiro A em maiúsculo.
		
		char character = 'a';
		
		char comparador = Character.toLowerCase(character);
		
		for (int i = 0; i < str.length(); i++) {
			char charAt = str.charAt(i);
			if (Character.toLowerCase(charAt) == comparador) {
				System.out.println (character + " encontrado em " + str + " --> " + charAt);
			}
		}

Recomendo fortemente que não faça isso, usar a recursividade nesse caso é 1 pleonasmo…
Sempre quando puder evitar recursividade Evite.
Use o método indexOf[/quote]
Recursividade?
E, novamente, indexOf não resolve o problema sugerido 8)