我有一个长度未知的字符串,看起来像这样

"dog, cat, bear, elephant, ..., giraffe"

用逗号分隔这个字符串的最佳方法是什么,这样每个单词都可以成为数组列表的一个元素?

例如

List<String> strings = new ArrayList<Strings>();
// Add the data here so strings.get(0) would be equal to "dog",
// strings.get(1) would be equal to "cat" and so forth.

当前回答

这是一个用逗号分割字符串的简单方法,

import java.util.*;

public class SeparatedByComma{
public static void main(String []args){
     String listOfStates = "Hasalak, Mahiyanganaya, Dambarawa, Colombo";
     List<String> stateList = Arrays.asList(listOfStates.split("\\,"));
     System.out.println(stateList);
 }
}

其他回答

“老式”(JDK1.0) java。StringTokenizer类:

StringTokenizer(String str, String delim)

import java.util.*;

public class Tokenizer {
        public static void main(String[] args) {
                String str = "dog, cat, bear, elephant, ..., giraffe";
                StringTokenizer tokenizer = new StringTokenizer(str, ",");

                List<String> strings = new ArrayList<String>();

                while (tokenizer.hasMoreTokens()) {
                        // if need to trim spaces .trim() or use delim like ", "
                        String token = tokenizer.nextToken().trim();
                        strings.add(token);
                }
                // test output
                strings.forEach(System.out::println);
        }
}

注: StringTokenizer是出于兼容性考虑而保留的遗留类,尽管不鼓励在新代码中使用它。建议寻求此功能的人使用String的split方法或java.util.regex包。

例子:

import java.util.regex.*;
...
// Recommended method<?>
Pattern commaPattern = Pattern.compile("\\s*,\\s*");
String[] words = commaPattern.split(str);
List<String> wordList = new ArrayList<String>(Arrays.asList(words));

// test output
wordList.forEach(System.out::println);
...

用这个:

        List<String> splitString = (List<String>) Arrays.asList(jobtype.split(","));

有一个名为replaceAll()的函数,它可以删除所有空白,将它们替换为您想要的任何内容。举个例子

String str="  15. 9 4;16.0 1"
String firstAndSecond[]=str.replaceAll("\\s","").split(";");
System.out.println("First:"+firstAndSecond[0]+", Second:"+firstAndSecond[1]);

会给你:

First:15.94, Second:16.01

我能试试这个吗

 sg = sg.replaceAll(", $", "");

否则

if (sg.endsWith(",")) {
                    sg = sg.substring(0, sg.length() - 1);
                }

简单而简短的解决方案:-

字符串str="测试1,测试2,测试3"; List<String> elementList = Arrays.asList(str. aslist)replaceAll(“\ \ s * \ \ s * ", ", ") .split (", ")); 输出=["test 1","test 2","test 3"]

它适用于所有情况。

稍后谢谢我:-)