2012-02-27 16 views
26

私は以下の質問があります。私のアプリでは、リストビューがあります。私はlistviewからitemnameを取得し、それを文字列としてwebviewに転送します。この文字列の大文字小文字を無視し、空白をアンダースコアに変更するには?スペースをアンダースコアに変更し、文字列の大文字小文字を区別しない方法は?

たとえば、です。私はそれを次の活動に移して、大文字小文字を無視してスペースをアンダースコアに変更したい(結果でfirst_topicを取得したい)。 は、私が「itemNameに」webviewactivityに取得し、私は次のコードで説明してきた何をしたい:

String filename = bundle.getString("itemname") + ".html"; 

してください、助けを。このような

答えて

77

使用replaceAlltoLowerCase方法:

myString = myString.replaceAll(" ", "_").toLowerCase()

+0

ありがとうございますが、結果はありません。私は活動でそれを\t \tとして使用します。 'string itemname = bundle.getString(" itemname "); itemname.replaceAll( ""、 "_")。toLowerCase(); 'そして、' String filename = itemname + ".html"; '正しくないかもしれません。どうぞご覧ください。 – Sabre

+3

あなたはitemname = itemname.replaceAll( ""、 "_")としてそれを書く必要があります。toLowerCase(); – everconfusedGuy

+0

@nainiが答えました...これらのメソッドは、新しい値を割り当てる必要があるように、新しい変更された文字列を返すだけの文字列を変更していません。 – shift66

6

あなたがでReplaceAll & toLowerCaseメソッドのメソッドを使用しますが、彼らは文字列を変更しないことを心に留めておくことができますので、(彼らは変更された文字列を返します)変数にバックを割り当てる必要があります。

String itemname = bundle.getString("itemname"); 
itemname = itemname.replaceAll(" ", "_").toLowerCase(); 
String filename = itemname + ".html"; 
+0

Doh、質問は私がタイプしている間に以前の答えに対するコメントとして答えられました(そして、私はコメントとして投稿していたはずです - 新しいStackOverflowに投稿してください) – Zarius

5

これは私の作品:

opositeで
itemname = itemname.replaceAll("\\s+", "_").toLowerCase(); 

replaceAll("\\s+", "_")replaceAll("\\s+", "_")にはあなたに多くのスペースの場合は、単一のアンダースコアを与えている行に表示されます:

"first topic".replaceAll("\\s+", "_") - >first_topic

"first topic".replaceAll(" ", "_") - >first__topic

関連する問題