Android分割文字列


227

という文字列がCurrentStringあり、次のような形式です "Fruit: they taste good"
を区切り文字としてCurrentString使用して分割したいと思い:ます。
このようにして、単語"Fruit"は独自の文字列に分割され、"they taste good"別の文字列になります。
そして、その文字列を表示するためSetText()に2つの異なるTextViewsを使用したいと思います。

これに取り組む最善の方法は何でしょうか?


おそらく正規表現を読んでみてください。彼らもうまくいきます。
Shouvik

10
@Falmarri-プログラミングに関する独自の質問は、Stack Overflowで歓迎されています。
Tim Post

回答:


606
String currentString = "Fruit: they taste good";
String[] separated = currentString.split(":");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

2番目の文字列のスペースを削除することもできます。

separated[1] = separated[1].trim();

文字列をドット(。)などの特殊文字で分割する場合は、ドットの前にエスケープ文字\を使用する必要があります。

例:

String currentString = "Fruit: they taste good.very nice actually";
String[] separated = currentString.split("\\.");
separated[0]; // this will contain "Fruit: they taste good"
separated[1]; // this will contain "very nice actually"

それを行うには他の方法があります。たとえば、StringTokenizer(からのjava.util)クラスを使用できます。

StringTokenizer tokens = new StringTokenizer(currentString, ":");
String first = tokens.nextToken();// this will contain "Fruit"
String second = tokens.nextToken();// this will contain " they taste good"
// in the case above I assumed the string has always that syntax (foo: bar)
// but you may want to check if there are tokens or not using the hasMoreTokens method

これをありがとう!新しいTimeオブジェクトを作成するときに、時間と分を分離するのにも役立ちます。
勤務

24
ありがとうございました!.split()メソッドはAndroidではまったく機能しません!StringTokenizerは正常に動作しています。
Ayush Pateria、2012年

はい、そうです...どんな問題がありましたか?
クリスティアン

androidのsplitは、単純な文字列分割線の代わりに正規表現を受け取ります。
htafoya 2013

1
@HardikParmarはetPhoneNo.getText().toString().replaceAll("\\D", "");、数字ではないすべてを置き換えると言っています
MilapTank


52

androidカンマによる文字列分割

String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
    System.out.println("item = " + item);
}

25
     String s = "having Community Portal|Help Desk|Local Embassy|Reference Desk|Site News";
     StringTokenizer st = new StringTokenizer(s, "|");
        String community = st.nextToken();
        String helpDesk = st.nextToken(); 
        String localEmbassy = st.nextToken();
        String referenceDesk = st.nextToken();
        String siteNews = st.nextToken();

22

Android固有のTextUtils.split()メソッドを検討することもできます。

TextUtils.split()とString.split()の違いは、TextUtils.split()で文書化されています。

String.split()は、分割する文字列が空の場合に['']を返します。これは[]を返します。これは結果から空の文字列を削除しません。

これはより自然な行動だと思います。基本的に、TextUtils.split()は、String.split()の単なるラッパーであり、空の文字列の場合を特に処理します。メソッドのコードは実際には非常に単純です。


文字列に対して直接split()を呼び出すのではなく、TextUtils.split()を使用する利点は何ですか?
nibarius 2014年

TextUtils.split()とString.split()の違いを明確にするために回答を編集
gardarh 2014年

おかげで、私は実際にTextUtils.split()のドキュメントを読みましたが、何らかの理由でこの詳細を見逃しました。私はそれが実際に言ったことを理解するのに疲れていたと思います。
nibarius 2014年

0

文字列s = "String ="

String [] str = s.split( "="); // str [0]は「hello」、str [1]は「goodmorning、2,1」

この文字列を追加

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.