2016-12-26 7 views
0

この問題は解決されました。私はアンドロイドスタジオを再インストールしましたが、別の問題が発生しました。 文字列を置換する "> =" <"は機能しません


は、私は以下のコードで「<」で「> =」文字列を置換しようとしていると、結果は動作しませんでした。

String descricao = ">= 0"; 
if (descricao.contains(">=")){ 

     descricao = descricao.replace(">=","<"); 
     listaElementosFiltro.get(i).setDescricao(descricao)}; 

私が得る結果は次のとおりです。

descricao = "><> 0"なく"< 0"予想通り、それは特殊文字を置き換えると干渉することは予想外だから...

+1

'String.replace()'は確実に動作します。それは、あなたが描写した置き換えを行いません。あなたの問題は、結果を表示したり、リスト内の要素を混在させたり、 'setDescricao'が予期せぬことをしたりするときに、別の場所になければなりません。あなたはこれに関連するHTMLを使用しませんか? – Codo

+0

が同意すると、問題は印刷部に関連する可能性があります。より多くの詳細が役に立ちます – auval

答えて

-1

これは、面白い質問です。

This(問題は解決しませんでしたが)奇妙だ

String greaterOrEqual = TextUtils.htmlEncode(">="); 
String smaller = TextUtils.htmlEncode("<"); 

String descricao = TextUtils.htmlEncode(">= 0"); 
if (descricao.contains(greaterOrEqual)){ 

     descricao = descricao.replace(greaterOrEqual,smaller); 
     listaElementosFiltro.get(i).setDescricao(Html.fromHtml(descricao))}; 
+0

私はあなたのソリューションがうまくいくかどうか疑問です。 HTMLをHTMLに変換するのはなぜですか? FabioFerreiraCSの問題は、彼が彼の質問で述べなかった領域になければならない。 – Codo

+0

@Codo "<"は "<"に変換され、 ">"は ">"に変換され、すべての比較はこれらの特殊文字を含まない文字列になりますので、動作するはずです。私は彼が少なくとも試してみるべきだと思う。 – auval

+0

あなたのコードがうまくいけば、 'String.replace()'の元のコードもうまくいくでしょう。問題の原因については説明がありません。 'String.replace()'は特殊文字ではありません。 – Codo

0

、私はそれを確認し、その結果が、とにかく、あなたが望むものである、

  • は、それはまだ試して動作しない場合は

それを実行した後、最初のclean and buildを試してみてくださいこのうちの1つ:

String descricao = ">= 0"; 
    if (descricao.contains(">=")) { 
     descricao = descricao.replace(">=", "<"); 
     System.out.println(descricao); 
     //listaElementosFiltro.get(i).setDescricao(descricao); 
    } 

    // option 2 
    if(descricao.startsWith(">=")){ 
     descricao= descricao.replace(">=","<"); 
     System.out.println(descricao); 
    } 

    // option 3 
    if(descricao.indexOf(">=") >= 0){ 
     descricao= descricao.replace(">=","<"); 
     System.out.println(descricao); 
    } 

私にはわからないlistaElementosFiltro.get(i).setDescricao(descricao);だから、私はそれを避けるだけです。

関連する問題