Java 使用Split方法拆分字符串
我曾尝试使用split方法拆分字符串,但在使用split方法时遇到了一些问题Java 使用Split方法拆分字符串,java,string,split,Java,String,Split,我曾尝试使用split方法拆分字符串,但在使用split方法时遇到了一些问题 String str="1-DRYBEANS,2-PLAINRICE,3-COLDCEREAL,4-HOTCEREAL,51-ASSORTEDETHNIC,GOURMET&SPECIALTY"; List<String> zoneArray = new ArrayList<>(Arrays.asList(zoneDescTemp.split(","))); 预期产出: zoneArr
String str="1-DRYBEANS,2-PLAINRICE,3-COLDCEREAL,4-HOTCEREAL,51-ASSORTEDETHNIC,GOURMET&SPECIALTY";
List<String> zoneArray = new ArrayList<>(Arrays.asList(zoneDescTemp.split(",")));
预期产出:
zoneArray = {"1-DRYBEANS","2-PLAINRICE","3-COLDCEREAL","4-HOTCEREAL","51-ASSORTEDETHNIC","GOURMET&SPECIALTY"}
zoneArray = {"1-DRYBEANS","2-PLAINRICE","3-COLDCEREAL","4-HOTCEREAL","51-ASSORTEDETHNIC,GOURMET&SPECIALTY"}
任何帮助都将不胜感激。使用split(,(?=[0-9])”
您不仅仅是按逗号拆分,而且只有在逗号后面跟一个0-9之间的数字时才按逗号拆分。这也称为正向前瞻(?=)
以下面的代码段为例:
public static void main(String[] args) {
String str="1-DRYBEANS,2-PLAINRICE,3-COLDCEREAL,4-HOTCEREAL,51-ASSORTEDETHNIC,GOURMET&SPECIALTY";
String[] array1= str.split(",(?=[0-9])");
for (String temp: array1){
System.out.println(temp);
}
}
}
public class Foo {
public static void main(String[] args) {
String str = "1-DRYBEANS,2-PLAINRICE,3-COLDCEREAL,4-HOTCEREAL,51-ASSORTEDETHNIC,GOURMET&SPECIALTY";
String regex = ",(?=\\d+)";
String[] tokens = str.split(regex);
for (String item : tokens) {
System.out.println(item);
}
}
}
在您的正则表达式中使用一个lookahead,它使用逗号(不在lookahead中),后跟一个数字(在lookhead中)<代码>\\d+就足够了。正则表达式可以如下所示:
String regex = ",(?=\\d+)";
例如:
public static void main(String[] args) {
String str="1-DRYBEANS,2-PLAINRICE,3-COLDCEREAL,4-HOTCEREAL,51-ASSORTEDETHNIC,GOURMET&SPECIALTY";
String[] array1= str.split(",(?=[0-9])");
for (String temp: array1){
System.out.println(temp);
}
}
}
public class Foo {
public static void main(String[] args) {
String str = "1-DRYBEANS,2-PLAINRICE,3-COLDCEREAL,4-HOTCEREAL,51-ASSORTEDETHNIC,GOURMET&SPECIALTY";
String regex = ",(?=\\d+)";
String[] tokens = str.split(regex);
for (String item : tokens) {
System.out.println(item);
}
}
}
它所做的是用逗号分割,逗号后面跟数字,但不会从输出中删除数字,因为数字是前瞻的一部分
有关“向前看”、“向后看”和“环顾四周”的详细信息,请查看。您需要使用一个包含向前看的正则表达式,一个查找逗号(不在向前看中)后跟数字(在向前看中)的正则表达式是的,完全正确。1+