Comparar trecho de String

14 respostas
T

Estou com um probleminha. Estou tentando comparar um trecho de uma String mas não to conseguindo de jeito nenhum, tipo, eu tenho a string com o valor teste{valor} e no if eu faço a seguinte comparação:

if(string == “%{valor}”)

Algo errado nisso? Tem algum jeito que eu possa fazer essa comparação.
Lembrando que pode aparecer qualquer coisa antes de {valor}, ou seja, eu não posso comparar a string inteira.

Caso alguem possa me ajudar, agradeço.

14 Respostas

BrunoBastosPJ

método equals

if(string.equals ("%{valor}") )

esse método returna true se as strings forem iguais

B

“thiagoencd”:
Estou com um probleminha. Estou tentando comparar um trecho de uma String mas não to conseguindo de jeito nenhum, tipo, eu tenho a string com o valor teste{valor} e no if eu faço a seguinte comparação:

if(string == “%{valor}”)

Algo errado nisso? Tem algum jeito que eu possa fazer essa comparação.
Lembrando que pode aparecer qualquer coisa antes de {valor}, ou seja, eu não posso comparar a string inteira.

Caso alguem possa me ajudar, agradeço.

Ola,

Voce quer saber se a string contem “%{valor}” né?!

então, se vc tá usando o java 5, use o metodo contains, assim:

String qqCoisa = "823048348${valor}sdasda"; if(qqCoisa.contains("${valor}"){ System.out.println("ok, contem"); }else{ System.out.println("Não contem"); }

T

Tentei com esse equals exatamente desse jeito mas não deu certo também.

Dá o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

e o programa rodando.

B

“thiagoencd”:
Tentei com esse equals exatamente desse jeito mas não deu certo também.

Dá o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

e o programa rodando.

Nao esqueca de iniciar a string antes de fazer a comparação…

T

“BrunoCarlo”:
“thiagoencd”:
Estou com um probleminha. Estou tentando comparar um trecho de uma String mas não to conseguindo de jeito nenhum, tipo, eu tenho a string com o valor teste{valor} e no if eu faço a seguinte comparação:

if(string == “%{valor}”)

Algo errado nisso? Tem algum jeito que eu possa fazer essa comparação.
Lembrando que pode aparecer qualquer coisa antes de {valor}, ou seja, eu não posso comparar a string inteira.

Caso alguem possa me ajudar, agradeço.

Ola,

Voce quer saber se a string contem “%{valor}” né?!

então, se vc tá usando o java 5, use o metodo contains, assim:

String qqCoisa = "823048348${valor}sdasda"; if(qqCoisa.contains("${valor}"){ System.out.println("ok, contem"); }else{ System.out.println("Não contem"); }

Também não deu certo, deu o mesmo erro do equals.

B

Pô. posta o codigo ae pra gente dar uma olhada…

T

[color=“red”]
package controleua;

import <a href="http://java.io">java.io</a>.*;

import java.io.IOException;

import javax.swing.JOptionPane;

public class arquivoIO{

private String linha;

public void escreveArquivo (int ua, String qtde) throws IOException
{

try
        {
        FileOutputStream os = new FileOutputStream("Spool.txt");
        PrintWriter printer = new PrintWriter(os,true);
        
        
        FileInputStream is = new FileInputStream("ua.txt");
        InputStreamReader reader = new InputStreamReader(is);
        BufferedReader buffer = new BufferedReader(reader);
        
        
        while(true){
            
             linha = buffer.readLine();
        
            if(linha.contains("${ua}"))
                printer.println(linha+ua);
            else if (linha.contains("${qtd}"))
            printer.println(linha+qtde);
            else
                printer.println(linha);
            
            
         if(linha == null) 
        // sai do loop
        break;
             
             
         }
        is.close();
        os.close();
        
        }
        
       catch(IOException e) 
                {
                    JOptionPane.showMessageDialog(null,e.getMessage());
                    
                }

}

}
[/color]

Esta é a classe que estou tendo problema.
Eu leio um arquivo txt pego a linha e jogo na string, depois eu gravo esta linha em outro arquivo e se a linha tiver um dos tags eu gravo a linha + uma variavel.

B

Ola,

na parte do while, faz assim pra evitar o null pointer:

String line = null; while((line = buffer.readLine()) != null){ if(linha.contains("${ua}")) printer.println(linha+ua); else if (linha.contains("${qtd}")) printer.println(linha+qtde); else printer.println(linha); }
Pq vc tá tentando verificar se a linha e diferente de null depois do uso… então se ela estiver null já vai lançar a exception…

T

Ainda assim da o mesmo erro:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at controleua.arquivoIO.escreveArquivo(arquivoIO.java:30)

B

Identifica pra mim qual é a linha 30 na classe arquivoIO

T

Resolvi parcialmente, a linha 30 é aquela primeira linha que faz a comparação.

Consegui resolver voltando com o while(true) e quebrando com o if(linha == null) break

só que eu coloquei esse comando antes da comparação. Agora não da mais o erro mas mesmo assim ele continua não fazendo a comparação corretamente, ele passa por todos os if sem fazer a alteração.

Editado.

Consegui agora fazer ele comparar corretamente.
Valeu irmão, obrigadão pela paciência.

Agora abusando um pouco mais, eu queria fazer a string receber o valor da linha menos o {ua}. Sabe como?

Editado de novo

Achei como fazer isso, usei o método substring e indico o inicio e o fim de onde eu quero copiar.
Valeu!!!

B

“thiagoencd”:

Achei como fazer isso, usei o método substring e indico o inicio e o fim de onde eu quero copiar.
Valeu!!!

É isto ae mesmo… ou vc pode usar o replaceAll, assim:

String str = "jafjdlj {ao}";
str = str.replaceAll("{ao}", "");

Tb funciona…

T

“BrunoCarlo”:
“thiagoencd”:

Achei como fazer isso, usei o método substring e indico o inicio e o fim de onde eu quero copiar.
Valeu!!!

É isto ae mesmo… ou vc pode usar o replaceAll, assim:

String str = "jafjdlj {ao}";
str = str.replaceAll("{ao}", "");

Tb funciona…

Muito melhor mesmo, mas preferi usar o replace, que ja troca o {valor} pela variavel que vai para o arquivo.

P

eu uso o seguinte…

if (nomedavariavel1.compareTo(nomedavariavel2)==0) 
//quer dizer que sao iguais
//se for diferente de 0 sao diferentes.. 
if (nomedavariavel1.compareTo(nomedavariavel)!=0)
Criado 21 de julho de 2006
Ultima resposta 22 de jul. de 2006
Respostas 14
Participantes 4