Dúvida - [StringTokenizer]=> [RESOLVIDO]  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline

Boa noite!

Quero pegar um função qualquer, exemplo: 3x^3 + 2x + 2x^2, e resolve-la em partes (para fazer a derivada).

Já fiz métodos para resolver os termos simples, ex: 3x^3, consigo resolver sem problemas, agora composta como o exemplo acima eu não consigo.
Bom, gostaria de dividir a função acima composta em varias funções simples para resolve-las pelos métodos já existentes.
Tive uma ideia de dividir toda vez que o sinal de mais "+" aparecer (em algum if, seilá), porém tentei de varias formas implementar essa ideia sem sucesso, alguém poderia me ajudar ???
Agradeço.

This message was edited 4 times. Last update was at 27/05/2010 12:05:21

diegowebby
Debugger
[Avatar]

Membro desde: 14/02/2007 10:08:02
Mensagens: 68
Offline

Basta utilizar o método split do próprio Java.
Lembrando que como o caractere "+" é especial, este deve ser precedido pelos caracteres de escape "\\"

Exemplo:

This message was edited 2 times. Last update was at 25/05/2010 19:43:04

felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline


Obrigado vou testar esse método aqui...só uma dúvida: ele vai dividir em 3 partes ou 2 ????
tem como armazenar as as partes em algum local para executar meu método ???
vlw

balrog
JavaEvangelist

Membro desde: 25/05/2003 16:42:17
Mensagens: 381
Localização: London
Offline


balrog
SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA

http://www.flickr.com/photos/planetadventure/sets/

Twitter @planetadventure
[WWW]
felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline


Valeu cara....foi muito útil..está funcionando agora tranquilo

implementei dessa forma:



obs: a "funcao" é uma String, que representa a função, ex: 3x^2+1x^3+2x^3.
RESULTADO: Consegui calcular a derivada certinho.. e talz... fica assim: 6x^1 3x^2 6x^2..porém..... estou com um pequeno problema agora.... como pegar o sinal (- ou +) que separei da String e voltar novamente na função..ou seja quero adiconar o sinal retirado......gostaria de adicionar esse sinal em alguma string.... ex: uma String vet[i] . onde armazenar o sinal....e posso ....adiciona-lo....posteriormente a função...==>>>... como poderei fazer isso ??? a StringTokenizer tem algum método para armazenar a String (sinal) que separei ???? vlw obrigado !!!!!!!

This message was edited 5 times. Last update was at 26/05/2010 08:01:20

felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline


Alguém poderia me ajudar ????
como faço para saber se a StringTokenizer usou o delimitador + e quando usou o delimiitador -, já que são dois delimitadores, preciso saber qual delimitador foi usado e armazena-lo em um string se possível....??????????
balrog
JavaEvangelist

Membro desde: 25/05/2003 16:42:17
Mensagens: 381
Localização: London
Offline

http://java.sun.com/j2se/1.5.0/docs/api/java/util/StringTokenizer.html

balrog
SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA

http://www.flickr.com/photos/planetadventure/sets/

Twitter @planetadventure
[WWW]
felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline


Bom já consultei o api da StringTokenizer, e não consiguir achar solução para o meu caso..... imagino que não seja possível o que estou querendo..... através da ST.... alguém poder sugerir uma solução para tal problema ????

Tipo consigo resolver as derivadas de cada trecho, porém o resultado fica sem o sinal (- ou +), como adicionar o sinal ??? se a função tiver só sinal de + ..ou só sinal de - é fácil..... jah tenho ideia de como fazer...mas se tiver sinais de + e - na mesmo função... ex: 3x^2 + 3x^2 - 5x^3 ...como retornar os sinais depolis ??? alguém poderia me ajudar ???
balrog
JavaEvangelist

Membro desde: 25/05/2003 16:42:17
Mensagens: 381
Localização: London
Offline

http://java.sun.com/j2se/1.5.0/docs/api/java/util/StringTokenizer.html#StringTokenizer%28java.lang.String,%20java.lang.String,%20boolean%29

balrog
SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA

http://www.flickr.com/photos/planetadventure/sets/

Twitter @planetadventure
[WWW]
felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline


Cara...realmente é isso que preciso ..que retorne a delim quando for verdadeiro....... jah fiz alguns testes aqui ..mas não sei como montar esse método para verificação..lembrando que esse metodo StringTokenizer eu aprendi ontem com você........poderia me dah uma força que como implementar...tipo não sei montar....vlw

This message was edited 1 time. Last update was at 26/05/2010 12:49:12

balrog
JavaEvangelist

Membro desde: 25/05/2003 16:42:17
Mensagens: 381
Localização: London
Offline

bom, agora que vc ja tem tudo o que precisa,

public StringTokenizer(String str,
String delim,
boolean returnDelims)

ajude a vc mesmo, e aumente seu CVP, ter as respostas todas de graca nao vai ajudar vc em nada. Vc esta no caminho certo apenas chame o metodo acima passando true no returnDelims e faca as modificacoes necessarias.

balrog
SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA

http://www.flickr.com/photos/planetadventure/sets/

Twitter @planetadventure
[WWW]
felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline

concerteza! Acontece que estou mais ou menos umas 7 horas pesquisando e não consigoa achar uma reposta certa:

tipo montei desse jeito aqui:

não consigo entender como que faço para separar os sinais + e - em um vetor, de modo que fique em sequencia posteriormente..

This message was edited 1 time. Last update was at 26/05/2010 13:55:00

balrog
JavaEvangelist

Membro desde: 25/05/2003 16:42:17
Mensagens: 381
Localização: London
Offline

vc nem se quer se deu o trabalho de ler o que escrevi, nunca disse que vc deveria reinventar a roda, apenas sugeri usar o construtor que recebe um boolean que determina se os delimitadores serao tratados como tokens ou nao

onde vc tem


ficaria assim

balrog
SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA

http://www.flickr.com/photos/planetadventure/sets/

Twitter @planetadventure
[WWW]
felipehts
Java Ninja
[Avatar]

Membro desde: 30/11/2009 12:56:35
Mensagens: 285
Offline

Consegui implementar através de .split, mais de qualquer forma te agradeço muito, pois aprendi bastante sobre StringTokenizer, e era tão simples a mudança que teria que fazer no código..mas não consigui entender dessa forma..... Na verdade eu verifiquei o que você escreveu e ate pesquisei muito sobre como implementar, mas como ainda sou "novato" nesse ramo, não consegui ter sucesso.....tentei de varias formas ate inventar um WHILE sem sentido ..rrsrsrsrsrs.... vlw..ai agradeço....

This message was edited 1 time. Last update was at 27/05/2010 12:07:09

balrog
JavaEvangelist

Membro desde: 25/05/2003 16:42:17
Mensagens: 381
Localização: London
Offline

o split funciona, mas o codigo fica mais ficicil de manter, caso vc decida incluir operacoes de * ou / nas expressoes tem que adicionar um if extra por operacao, segue o exemplo do usando StringTokenizer

balrog
SCJA, SCJP, SCWCD, SCBCD, SCDJWS, SCEA

http://www.flickr.com/photos/planetadventure/sets/

Twitter @planetadventure
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team