Duvida no split

7 respostas
E

Salve galera!
Meu problema é sobre o comando split()
Eu preciso fazer um programa de calculo de polinômios, então preciso dividir uma string assim:
exemplo:
-13x^2b
ficará:
vetor [0] -13
vetor [1] x^2b

7 Respostas

Roger75

Na string de origem, veja se não tem como colocarem um delimitador, por exemplo “-13|x^2b”

Daí sim daria pra usar o split:

String[] vetor=polinomio.split("|");

P

Olá,

Supondo esse polinômio: p(x) = ax² + bx + c
Como você quer o split?

[ ]'s

M

Só com este exemplo fica complicado enteder o que você quer, poderia simplismente fazer um split pelo ‘x’…

uma dica o split suporta expressao regular… veja uma que atende o que precisa e coloca ela no split… um exemplo de uso!!!

String entrada = "-13x^2b"; 
            Pattern p = Pattern.compile("[0-9]");
            // Split input with the pattern
            String[] saida = p.split(entrada);
            for (int i=0; i<saida.length; i++)
                System.out.println(saida[i]);

abraço,

Marcelo GOmes

E

schranko:

Supondo esse polinômio: p(x) = ax² + bx + c
[ ]'s

Separaria se possível assim:
a, b, c : valor numerico
vetor [0] = +a
vetor [1] = x²
vetor [2] = +b
vetor [3] = x
vetor [4] = +c

Se não houver uma possibilidade rápida devo colocar um delimitador como disse o Roger75, Tenho que fazer esse projeto para amanhã.
thanks

P

Olá,

  1. Faça o split pelos sinais (+ ou -) e armazene o sinal para cada parcela.
  2. Faça splits por ‘x’ de cada termo obtido anteriormente.

Acho que resolve. Utilize expressões regulares conforme disse o marcelogomesrp.

[ ]'s
Angelo

E

schranko:
Olá,

  1. Faça o split pelos sinais (+ ou -) e armazene o sinal para cada parcela.
  2. Faça splits por ‘x’ de cada termo obtido anteriormente.

Acho que resolve. Utilize expressões regulares conforme disse o marcelogomesrp.

[ ]'s
Angelo

Acho que isso não daria certo se o usuário, entrasse com um termo B.
Encontrei em um outro tópico, um programador usou tabela ascII como delimitador, vou tentar depois do almoço, mais tarde posto se deu certo. Valeu galera

D

realmente, se for pelos sinais nao ira funcionar…
pq pode haver um sinal que apenas mude o numero para negativo, e nao a expressão;…
axo melhor mesmo usar o codigo da tabela…ai sim e confiavel…
vlw

Criado 12 de setembro de 2010
Ultima resposta 12 de set. de 2010
Respostas 7
Participantes 5