Android拆分string
我有一个名为CurrentString
的string,其forms类似于"Fruit: they taste good"
。
我想使用:
作为分隔符来分割CurrentString
。
这样, "Fruit"
这个词就会被分成自己的string,而"they taste good"
将成为另一个string。
然后,我只想使用2个不同TextViews
SetText()
来显示该string。
什么是最好的方法来解决这个问题?
String CurrentString = "Fruit: they taste good"; String[] separated = CurrentString.split(":"); separated[0]; // this will contain "Fruit" separated[1]; // this will contain " they taste good"
您可能要删除空间到第二个string:
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方法将工作,但它使用正则expression式。 在这个例子中,(从克里斯蒂安偷窃):
String[] separated = CurrentString.split("\\:"); separated[0]; // this will contain "Fruit" separated[1]; // this will contain " they taste good"
此外,这来自: Android拆分不正常工作
android逗号分隔string
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()中有logging:
当要拆分的string为空时,String.split()返回['']。 这返回[]。 这不会从结果中删除任何空string。
我觉得这是一个更自然的行为。 本质上,TextUtils.split()只是String.split()的一个简单包装,专门处理空string的情况。 该方法的代码实际上很简单。