Android拆分字符串


227

我有一个名为的字符串CurrentString,其形式像这样 "Fruit: they taste good"
我想CurrentString使用:分隔符。
这样一来,单词"Fruit"将被拆分成自己的字符串,"they taste good"并将成为另一个字符串。
然后我只想使用SetText()2种不同的TextViews字符串来显示该字符串。

解决此问题的最佳方法是什么?


您可能会尝试读入正则表达式。他们也很好。
Shouvik 2010年

10
@Falmarri-关于堆栈的任何关于编程的独特问题都欢迎。
Tim Post

Answers:


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"

您可能要删除第二个字符串的空格:

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

如果要用特殊字符(例如dot(。))分割字符串,则应在点之前使用转义字符\

例:

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年

是的,确实...您遇到了什么问题?
2012年

在android中拆分会收到一个正则表达式,而不是一个简单的字符串分隔符。
htafoya 2013年

1
@HardikParmar用etPhoneNo.getText().toString().replaceAll("\\D", "");它说替换掉所有不是数字的东西
MilapTank 2016年

86

.split方法可以使用,但是使用正则表达式。在此示例中,将是(从Cristian窃取):

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

另外,这来自于: Android split无法正常工作


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()和TextUtils.split()之间的区别在于:

当要拆分的字符串为空时,String.split()返回[“]。返回[]。这不会从结果中删除任何空字符串。

我发现这是一种更自然的行为。本质上,TextUtils.split()只是String.split()的一个薄包装,专门处理空字符串的情况。该方法的代码实际上非常简单。


使用TextUtils.split()而不是直接在字符串上直接调用split()有什么好处?
nibarius

编辑答案以澄清TextUtils.split()和String.split()之间的差异
gardarh 2014年

谢谢,我实际上阅读了TextUtils.split()的文档,但是由于某些原因,我错过了这个细节。我想我很难理解它的实际含义。
nibarius

0

String s =“ String =”

String [] str = s.split(“ =”); //现在,str [0]是“ hello”,str [1]是“ goodmorning,2,1”

添加这个字符串

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.