Como percorrer uma STRING

Estou com uma duvida de como fazer p/ ler uma string, do tipo, 5+5 e a partir dai, imprimir no video… Ou seja, eu nao sei como fazer(o que usar) p/ percorrer uma string e comparar o caractere se ele é um simbolo(*) ou numero…

Creio q seja facil… Gostaria de apenas uma demonstracao de como fazer p/ ler a string e armazenar seus simbolos.

String str = “5+5”;

e a partir desse pto, percorrer essa string e armazenar os 3 caracteres, comparando sempre se ele é um simbolo (*±/)

galera, é só uma ajuda… dessa parte de código… o resto eu sei…

aguardo… valews…

bom… seguinte…

String teste = "5+5*49-32";

for (int i =0; i< teste.length(); i++) {
    try {
       Integer.parseInt(String.valueOf(teste.charAt(i)))
   } catch (NumberFormatException ex) {
       //ele só entra aki... c o caracter de agora não for um número
       //aqui vc tem certeza que não é número...
       //use  String.valueOf(teste.charAt(i)) para saber qual é o caracter
       // ai vc ve o q faz com ele
    }
}

seguinte… não sei se é essa sua dificuldade… já vi varias pessoas tentando passar Expressào aritimetica e fazer as contas…

axo q é um processo meio complicadinho…

xeio de IFs… e Cases…

boa sorte ai… espero ter ajudado… era essa a duvida?

juliano, vc pode usar as funções static de Character:

Character.isDigit( char c );
Character.isLetter( char c );

…pra saber se o char é um digito… ou uma letra, ai usaria algo como:

Character.isDigit( suaString.charAt( i ) );

…q vai te retornar um boolean.

blz galera… deu certo aqui… sucesso…

mas o unico problema é que, depois de eu comparar a STRING, como q faço, ou q função uso p/ copiar esse numero e joga-la p/ um vetor??

Acho q é só isso… depois as condições eu ja fiz certinho… só falta eu pegar esses numeros jogar em um vetor e depois eu faço as contas…

aguardo galera… valews msmo…

valew

pra jogar num vetor??

vai ter q fazer… vetor.add(new Integer(12));

pq naum da pra por objetos primitivos num vetor…

ai tem q ser com o Integer Float… essas coisas

vetor.add(new Integer(value));

goooood loock

blz kra, entendi sim… e até deu ceu certo…

mas como fazer p/ pegar, vamos supor, o 1o e o 3o elemento dessa string, como em uma operacao de 5+5, gostaria de retiirar os dois 5 p/ trabalhar com eles, entendeu… tem como fazer isso??? retirar o elemento de uma string e depois utiliza-lo???

aguardo… ajuda novamente…

valews

[code]String str = "5+5";

int num = Integer.parseInt( str.charAt( 0 ) );[/code]

…algo como isso? :?:

tem como fazer sim…

String s = "5+5";

//pegando o 1º elemento
int primeiroTermo = Integer.parseInt(String.valueOf(s.charAt(0));

//pegando o 1º elemento
int segundoTermo = Integer.parseInt(String.valueOf(s.charAt(2));

bom ai ele pega o 1 caracter e poem em primeiroTermo e o segundo poem em segundoTermo …

abraços

[quote=“matheus”][code]String str = “5+5”;

int num = Integer.parseInt( str.charAt( 0 ) );[/code]

…algo como isso? :?:[/quote]

afff respondeu enquanto eu escrevia =[ … uhuhhuhu :fart:

é isso ai galera… show… consegui aqui…

valew msmo… agora, como q eu faço, para comparar se o q estou pegando é um operador, no caso de eu ter uma straing de tamanho definida pelo usuario… ou seja… o usuario digita la… 5+5*2-3…

como q percorro essa string e comparo elemento por elemento??

ta indo tdo OK aki.. com ajuda de vcs, claro... valew e aguardo;;;

use

Character.isDigit(string.charAt(caracterAtestar));

volta verdade c o carcter for um número

kra, veja o q estou fazendo…

import java.lang.*;

public class Exec02 {

	static public void main(String[] args)

		throws Exception {

		BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

		System.out.println("Entre com a conta: ");

		String entrada = teclado.readLine();


		
		for (int i =0; i< entrada.length(); i++) {
			if (Character.isDigit(entrada.charAt('*')))
				System.out.println("Caractere: " + i);
}

}
}

ele da erro qdo coloco uma expressa qquer… nao era p/ funcionar se eu colocassse 1*1 ele nao teria de buscar o caractere * e imprimi-lo?? q estou fazendo de errado??
aguardo e valews…

[color=“darkblue”]Editado para colocar o BBCode (AnotherX)[/color]

vc tem q usar

entrada.charAt(i) …

ai ele verificar o caracter q está na posição i…

akele teste só verifica c é numero ou não…

c não for número vc entende q é um operador…

outra dica é vc dar um trim na sua entrada… pra apargar os epaços a +

entrada = entrada.trim();

boa sorte

Kra, blzera aqui… Mas to com um novo problema aqui… veja só o codigo…

import java.io.;
import java.lang.
;

public class Exec02 {

static public void main(String[] args)

	throws Exception {

	BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

	System.out.println("Entre com a conta: ");

	String entrada = teclado.readLine();
	entrada=entrada.trim();
	char j = '*';

	
	for (int i =0; i< entrada.length(); i++) {
		if (Character.isDigit(entrada.charAt(i)))
		int primeiroTermo = Integer.parseInt(String.valueOf(entrada.charAt(i)));
	

		if (!(Character.isLetterOrDigit(entrada.charAt(i))))
			System.out.println("Caractere: " + i);

}

}
}

exatamente qdo vou executar o 1o IF, ele da pane… estou vendo se é numero e se SIM, ele guarda p/ min, nao esta certo???

pq esta dando erro??? aguardo kra… e estou conseguindo… to qse la…

valew msmo e aguardo…

Hummm…

é… o isDitgit num verifica c é numero não…

axo que vc tem q fazer com o TRY { } Catch {} … igual ta num post meu Mais acima… procura ai… ta aki no meio destes posts…

outra coisa… postas os codigos com o bbcode… tenta por ele entre as tags [code] …

vou indo… tenho q durmir… t +

valews kra… é isso ai…

mas qual a definicao p/ o TRY??? ele proteje o codigo, por isso q nao da a msg de erro???

certim aqui kra…

show… valews msmo… :smiley:

Não é bem uma proteção…

é o seguinte… vou por um comentário em cada linha

try //tenta executar o que estiver dentro do { } { //aki vai o que vc quer tentar fazer } catch (FormatNumberException ex) //aqui ele segura a exceção do tipo //FormatNumberException e guarda em ex { //aki vc define como tratar c houver uma exeção do tipo definido no catch }

valews kra… entendi certim