Contar inteiro em uma função

8 respostas
R

Bom, gostaria de saber se alguem pode me dar um dica sobre como contar e separar os números de uma string que recebe uma função (ex: 4x+5y+6w), separe os inteiros e armazene em um vetor ou matriz.A questão de armazenar na matriz ou no vetor é tranquilo, ja pensei em algumas coisas para separar os inteiro mas não ficaram nada bom :???: , se alguem puder ajudar, agradeço desde já…

no exemplo que dei acima o vetor ficaria assim:
[4 5 6].

Ps. procurei no forum mas não consegui encontrar nada deste tipo…

8 Respostas

D

Olha cara tenta te explicar um pouco melhor eu não consegui entender bem o que tu queres …

se tu queres “… contar e separar os números de uma string …”

bem se eh isso que eu entendo … se tu consegue separar os numeros tu consegue contar … tu colocou os numeros em um vetor … sendo assim so por ter feito isso tu ja sabe quantos numeros tem !!!

não sei se isso que tu queria, tenta detalhar um pouco mais ai :slight_smile:

R

taí …

public class Separa{ public static void main(String[] args){ String valor = "2X3f7R8h7H55k8Y41GnK4"; char rest; for(int i = 0; i < valor.length(); i++){ rest = valor.charAt(i); if(Character.isDigit(rest)){ System.out.println(rest); } } } }

… agora é só pegar a saída e montar o array

faloh!

R

Ae… muito obrigado!

R

Não deu certo… eu tentei modificar mas nao funcionou…
por exemplo:
se eu escrever a função 2x+33y+4d:
ele retorna [2, 3, 3, 4]

eu preciso de [2, 33, 4]

fiz algumas modificações mas só piorou a situação 8O

valew

J

esse metodo server pra juntar todos os digitos seguidos que ele encontra numa string.

public int metodo(String sub) { int retorno = 0; for(int i = 0; i < sub.length(); i++) { if(Character.isDigit(sub.charAt(i))) { retorno++; } else { break; } } return retorno; }
e o trecho abaixo serve para separar os elementos num Vector

Vector vetor = new Vector();
	String valor = "2X3f7R8h7H55k8Y41GnK4";//2 3 7 8 7 55 8 41 4
	      for(int i = 0; i < valor.length(); i++){
	         if(Character.isDigit(valor.charAt(i))){
	         	int temp = metodo(valor.substring(i));
	            vetor.add(new Integer(valor.substring(i, i + temp)));
	            i += temp;
	         }
	      } 
	      Iterator it = vetor.iterator();
	      while(it.hasNext()) {
	      	System.out.println(((Integer) it.next()).intValue());
	      }

o codigo acima é bem lento, mas funciona como voce espera…
se nao entendeu alguma coisa do codigo, posta aqui.

espero ter ajudado

R

estou tendo problemas nesta parte

int temp = metodo(valor.substring(i));

o Eclipse esta acusando erro, essa foi a parte do sódigo que naum entendi…

desde já muito obrigado!

J

“Radioativo”:
estou tendo problemas nesta parte

int temp = metodo(valor.substring(i));

o Eclipse esta acusando erro, essa foi a parte do sódigo que naum entendi…

desde já muito obrigado!

qual é o erro? so lembrando, voce tem que colocar o trecho acima deste, o que tem o “public int metodo(String)”.

diz ae qual foi o erro, porque foi no proprio eclipse que eu testei esse codigo.
:???:

J

so complementando, pra que voce passe a entender, o metodo “metodo” retorna um inteiro representando quantos caracteres depois do primeiro na String passada como parametro sao numeros proximos, para que no caso:

“kjh345kj”
eu tenho que passar
“345kj”
e passar no metodo “metodo”, ele retorna 2

espero que voce tenha entendido

Criado 7 de maio de 2005
Ultima resposta 12 de mai. de 2005
Respostas 8
Participantes 4