CurrentString
という文字列があり、この"Fruit: they taste good"
のような形式になっています。:
を区切り文字としてCurrentString
を分割したいのですが。
そのようにしてWord "Fruit"
はそれ自身の文字列に分割され、"they taste good"
は別の文字列になります。
そして、その文字列を表示するために2つの異なるTextViews
のSetText()
を使いたいのです。
これに取り組むための最善の方法は何でしょうか。
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();
他にも方法があります。例えば、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
.splitメソッドは機能しますが、正規表現を使用します。この例では、(Cristianから盗む)ことになります。
String[] separated = CurrentString.split("\\:");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"
Androidの分割文字列、カンマ
String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
System.out.println("item = " + item);
}
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();
Android固有の TextUtils.split() メソッドも検討する必要があります。
TextUtils.split()とString.split()の違いは、TextUtils.split()で説明されています。
分割する文字列が空の場合、String.split()は['']を返します。これは[]を返します。これは結果から空の文字列を削除しません。
私はこれがより自然な行動だと思います。本質的に、TextUtils.split()はString.split()の単なるラッパーで、空文字列の場合を特に扱います。 メソッドのコード は実際には非常に単純です。