[英]How to split a string on multiple delimiters stored in a list?
我有一个分隔符列表,例如
List<String> delimiters= Arrays.asList(",",".");
如果我有一个像"ab,c"
这样的字符串。
如何拆分所有分隔符?
你可以做一个正则表达式。
@Test
public void test() {
List<String> delimiters = Arrays.asList(",", ".", "?");
String str = "a.b,c?dr";
StringBuilder regex = new StringBuilder();
regex.append("[");
delimiters.stream().forEach(delimiter -> regex.append(delimiter + "/"));
regex.append("]");
String[] result = str.split(regex.toString());
}
请检查以下代码是否可以解决您的问题:
List<String> delimiters = Arrays.asList(",", ".", "?", ":");
for (String delimiter : delimiters) {
text = text.replace(delimiter, " "); //replace all delimiter occurrence with space
}
String[] output = text.split(" "); //split using space
String s = "a.b,c";
String[] split = s.split("[.|,]");
这个怎么样? 使用“|” 分隔多个分隔符,记得加[],否则需要转义
这是代码:
import java.util.Arrays;
import java.util.List;
public class StringSplitMultipleDelimeter {
public static void main(String[] args) {
List<String> delimiters= Arrays.asList(",",".","!","?","$","&","^","%","@");
String givenString = "Test,String.with?Multiple@delimeters!example";
//Create Regex to split sting
StringBuilder regex = new StringBuilder();
regex.append("[");
delimiters.forEach(delimeter -> regex.append(delimeter));
regex.append("]");
String[] tokens = givenString.split(regex.toString());
System.out.println("Number of tokens = " + tokens.length);
for(int i =0; i<tokens.length; i++) {
System.out.println(tokens[i]);
}
}
}
您可以先在字符串上使用 replaceAll 并将其全部转换为固定分隔符(您的选择),就像这样 - 然后您可以根据它拆分它:
String[] newArray = stringArray.replaceAll("[\\.]", ",").split(",");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.