Problemas com separação de inteiros, Reais em uma string

11 respostas
Bejota

Olá Pessoal,

Sou iniciante em Java e estou usando JCreator, preciso fazer o seguinte, lendo uma entrada de dados (via teclado) separar na string de entrada o que é inteiro, float e character.

Por enquanto ja fiz algo como listado abaixo, mas não esta funcionando, alguem pode me orientar pois acho que estou errado algo facil. Outra coisa é que o import do regex não aparece como ativo, sera que meu JCreator não possui o regex?

agradeço a ajuda

import java.io.DataInput
import java.io.DataInputStream
import java.until.Regex

public class Analisador {
private String DadospAnalise;

//Vetores para armazenar dados ja separados
public void entrada(){
	//Digitar dados 
	System.out.println("Digite os dados separados por espaço: ");

	//instancia o objeto 
	DataInput entrada_Dados = new DataInputStream(System.in);		
	try{
		//String Recebe a entrada 
		DadospAnalise = entrada_Dados.readLine();
	}catch (Exception erro){
		//Trata erro
		System.out.println("Erro de leitura");
	}		
}
private void parser(String Dados){
	String codNumeros = Dados.replaceAll( "\\D*", "" );  
    System.out.println("Inteiros: " + Dados); 
	String codLetras = Dados.replaceAll( "\\d*", "" );
	System.out.println("String: " + Dados);
}

}

11 Respostas

Polimorphism

vc importou o Regex como java.u[color=red]n[/color]til.Regex;… troque por java.util.Regex;

Bejota

Amigo, estou debugando meu codigo e ele esta dando erro justamente na linha do import java.util.Regex, esta estranho pq esta aparecendo como se o Regex não existisse na Biblioteca, ou seja quando eu importo ele não fica em evidência como os outros imports.

Thiago_Luis

Fala cara, blza?

É por Regex é um pacote, e dentro dele que tem as classes:

import java.util.regex.*;

Abraços

Bejota

Oi estou postando minha Classe principal para que possam ver como fiz tmb

public class Verificador {

public static void main(String[] args) {
	// declaração do Objeto e Instanciação
	analisador verificadados;
	verificadados = new verificadados();
	
    //Metodos
    verificadados.entrada();
    verificadados.analisa();
   // verificadados.imprime();

}

}


Bejota

Valeu brother, o problema do Regex parou de aparecer quando debugo, mas ele esta me dizendo : cannot find symbol class verificadados e analisador. Qual será o problema??? ja postei acima minah classe principal

agradeço a ajuda.

Thiago_Luis

Então, pq vc cirou o objeto Analisador com o tipo analisador (com a minúsculo) e depois do new, vc passou um construtor que não existe (verificadados()).
Deve ser:

Analisador verificadados; verificadados = new Analisador();
Abraços

Bejota

Oi amigos,

Novamente estou aqui como mais um problema (duvida), estou recebendo esta mensagem quando rodo o programa:

analisa(java.lang.String) in Analisador cannot be applied to ()

isso ocorre no trecho abaixo:

private void analisa(String Dados){

String codNumeros = Dados.replaceAll( “\D*, “” );

System.out.println("Inteiros: " + Dados);

String codLetras = Dados.replaceAll( “\d*, “” );

System.out.println("String: " + Dados);

}

A minha classe principal possue este metodo e quando tenta chama-lo da o erro citado.

obrigado.

Thiago_Luis

Cara, no seu primeiro post, vc declarou seu método como parser(String Dados) e não como analisa(String Dados)

Da uma verificada nos nomes…

Abraço

Bejota

Amigão, meu desculpe eu acabei mudando mas ja estava ocorrendo o mesmo erro quando eu utilizo parser, parece que ele esta com algum erro em relação ao que eu estou passando pra ele, pelo menos é o que eu andei vendo nas pesquisas que eu fiz sobre este erro:

parser(java.lang.String) in Analisador cannot be applied to ()

é amigos é duro ser iniciante em uma linguagem.

agradeço se mais alguem puder olhar meus codigos e me ajudar.

tks

Thiago_Luis
Então, É que no seu código aqui:
public static void main(String[] args) {
// declaração do Objeto e Instanciação
Analisador verificadados;
verificadados = new Analisador();

//Metodos
verificadados.entrada();
verificadados.analisa(); //Aqui vc tenta chamar um método analisa() que não contem nenhum parâmetro
// verificadados.imprime();
}
Ou seja, não existe este método. Vc deve passar uma String para o método analisa()!!!! Provavelmente a String DadospAnalise, que é a String que vc quer analisar.
DadospAnalise = entrada_Dados.readLine();
verificadados.analise(DadospAnalise);
Seria isso????

Abraço

Bejota

Obrigado amigão!!!

Decidi simplificar tudo aqui, ao invés de fazer todo o codigo que eu estava fazendo só pra separar letras numeros e reais (ponto flutuante), eu fiz o codigo abaixo pra testar e usei replaceAll. Funcionou cara. o que eu ainda não consegui fazer foi replaceAll para ponto flutuante pois não consegue encontrar a Expressão regular pra montar isso

segue o codigo:

import java.util.regex.*;

public class teste {

public static void main(String[] args) {
	
String cod = "0cd897ab";   

String codNumeros = cod.replaceAll( "\\D*", "" );
System.out.println("Inteiros: "+codNumeros);  
String codLetras = cod.replaceAll( "\\d*", "" ); 
System.out.println("String: "+codLetras);         
}

}

Criado 15 de agosto de 2009
Ultima resposta 16 de ago. de 2009
Respostas 11
Participantes 3