Java 如何在String.split()中允许空字符串?
我正在使用拆分字符串。我收到的字符串具有以下结构:Java 如何在String.split()中允许空字符串?,java,string,split,Java,String,Split,我正在使用拆分字符串。我收到的字符串具有以下结构: [data]<US>[data]<US> 除非[DATA]是一个空字符串,否则它可以正常工作。在这种情况下,数据被跳过 我希望像[DATA][DATA]这样的字符串返回一个包含三个元素的数组:[DATA]、null和[DATA] 我该怎么做呢?如果您使用-1作为第二个参数对拆分进行参数化,您将得到一个空字符串,其中[data]缺失(但不是null) 解释来自 如果n为非正,则图案将被应用尽可能多的次数,并且阵列可以具有
[data]<US>[data]<US>
除非[DATA]
是一个空字符串,否则它可以正常工作。在这种情况下,数据被跳过
我希望像[DATA][DATA]
这样的字符串返回一个包含三个元素的数组:[DATA]
、null
和[DATA]
我该怎么做呢?如果您使用
-1
作为第二个参数对拆分进行参数化,您将得到一个空字符串,其中[data]
缺失(但不是null
)
解释来自
如果n为非正,则图案将被应用尽可能多的次数,并且阵列可以具有任意长度
。。其中n是极限,即第二个参数 这是一个工作代码
String s="[DATA]<US><US>[DATA]<US>";
String arr []= s.split("<US>");
for(String str :arr) {
if(str.equals("")) {
System.out.println("null");
} else {
System.out.println(str);
}
}
要根据您的要求更加具体:
public String [] format(String s) {
String arr []= s.split("<US>");
for(int i=0;i<arr.length;i++)
{
if(arr[i].equals(""))
{
arr[i]=null;
}
}
return arr;
}
公共字符串[]格式(字符串s){
字符串arr[]=s.split(“”);
对于(int i=0;i,您可以简单地在数组中循环,然后将空字符串指定为null:
public class StringSplitting {
public static void main(String[] args){
String inputs = "[data]<US><US>[data]<US>";
String[] fields = inputs.split("<US>");
//set empty values to null
for(int i = 0; i < fields.length; i++){
if(fields[i].length() == 0){
fields[i] = null;
}
}
//print output
for(String e: fields){
if(e == null){
System.out.println("null");
}else{
System.out.println(e);
}
}
}
}
公共类字符串拆分{
公共静态void main(字符串[]args){
字符串输入=“[data][data]”;
字符串[]字段=输入。拆分(“”);
//将空值设置为null
for(int i=0;i
我的观点是,这实际上不起作用。如果没有提供限制,则不会有空字符串。@BartFriederichs Please elborate。你所说的没有限制是什么意思?请参阅公认的答案。
[DATA]
null
[DATA]
public String [] format(String s) {
String arr []= s.split("<US>");
for(int i=0;i<arr.length;i++)
{
if(arr[i].equals(""))
{
arr[i]=null;
}
}
return arr;
}
public class StringSplitting {
public static void main(String[] args){
String inputs = "[data]<US><US>[data]<US>";
String[] fields = inputs.split("<US>");
//set empty values to null
for(int i = 0; i < fields.length; i++){
if(fields[i].length() == 0){
fields[i] = null;
}
}
//print output
for(String e: fields){
if(e == null){
System.out.println("null");
}else{
System.out.println(e);
}
}
}
}