在字符串中分隔逗号分隔值

时间:2015-08-13 04:34:16

标签: java csv delimiter

String company = "general%20motors,ibm%20watson";

我有一个上述格式的字符串,用逗号分隔。我的要求是单独传递%20运动。以同样的方式ibm%20watson之后。所以任何建议我们如何进行?

3 个答案:

答案 0 :(得分:3)

如果您的company字符串中有多个以逗号分隔的值: -

String company="general%20motors,ibm%20watson";

    String arr[]=company.split(",");
    for(String string2:arr)
      System.out.println(string2);

答案 1 :(得分:0)

可能看起来像JAVA。

使用我们在Java中有字符串标记符只提供StringTokenizer并将数据作为流缓冲区传递给它,并将“,(逗号)”作为分隔符。将获得输出。您可以使用MIME类型来识别CSV。

答案 2 :(得分:0)

有很多方法可以做到这一点。 以下是我所知道的所有可能方法:split,Stringtokenizer,Apache commons StringUtils和Guava Splitter。

import java.util.StringTokenizer;

import org.apache.commons.lang3.StringUtils;

import com.google.common.base.Splitter;

public class Split {

    public static void main(String[] args) {
        final String company = "general%20motors,ibm%20watson";
        final String delimiter = ",";

        System.out.print("using core java split method    : ");
        String[] tokens = company.split(delimiter);
        for (String s : tokens) {
            System.out.print(s + " ");
        }
        System.out.println();

        System.out.print("using core java StringTokenizer : ");
        StringTokenizer st = new StringTokenizer(company, delimiter);
        while (st.hasMoreTokens()) {
            System.out.print(st.nextToken() + " ");
        }
        System.out.println();

        System.out.print("using apache commons StringUtils: ");
        tokens = StringUtils.split(company, delimiter);
        for (String s : tokens) {
            System.out.print(s + " ");
        }
        System.out.println();

        System.out.print("using guava Splitter            : ");
        Iterable<String> tkns = Splitter.on(delimiter).split(company);
        for (String s : tkns) {
            System.out.print(s + " ");
        }
    }
}