1. ホーム

[解決済み】Androidのスプリット文字列

2022-04-02 13:14:19

質問

という文字列があります。 CurrentString で、次のような形式になっています。 "Fruit: they taste good" .

を分割したいと思います。 CurrentString を使用して : をデリミタとして使用します。

だから、そのように単語 "Fruit" はそれ自身の文字列に分割され "they taste good" は別の文字列になります。

そして、単純に SetText() の2つの異なる TextViews でその文字列を表示します。

どのようにアプローチするのがベストでしょうか?

どのように解決するのですか?

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つ目のStringまでのスペースは削除した方がよいでしょう。

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

ドット(.)のような特殊文字で文字列を分割したい場合は、ドットの前にエスケープ文字(escape character)であるㄱを使用します。

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