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… 
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