Java中ab:cd:ef这样的字符串,怎么用split函数解析为string数组
答案:1 悬赏:60
解决时间 2021-01-30 15:56
- 提问者网友:蓝莓格格巫
- 2021-01-29 16:52
Java中ab:cd:ef这样的字符串,怎么用split函数解析为string数组
最佳答案
- 二级知识专家网友:从此江山别
- 2021-01-29 17:23
你可以使用java中的正则表达式来解析,java中用Pattern和Matcher使用正则表达式。
或者直接对字符串进行操作:
如果你的字符串的格式是确定的,仅仅是2个字符之间有冒号(:)隔开的话很容易:
public static ArrayList mySplit(String s){
ArrayList list = new ArrayList();
char[] str = s.toCharArray();
int i=0;
while(i if(str[i] == ':'){
i++;
continue;
}
else{
String temp = "";
temp += str[i];
temp += str[i+1];
list.add(temp);
i += 2;
}
}
return list;
}
你如果一定要String[] 类型的你可以再把list转换一下即可。追答
追问:目标字符串怎么设。。。全都要输出啊。。。目标字符串是不输出的啊。。。
追答:如果冒号也要的话,稍作修改:
public static ArrayList mySplit(String s){
ArrayList list = new ArrayList();
char[] str = s.toCharArray();
int i=0;
while(i if(str[i] == ':'){
list.add(":");
i++;
}
else{
String temp = "";
temp += str[i];
temp += str[i+1];
list.add(temp);
i += 2;
}
}
return list;
}
追问:while中匹配到冒号i就加一那到后面temp += str[i];不是从0开始了吗?
add是把字符串添加到新的数组里吗?
Pattern和Matcher木有接触过。。而且我是写在类的结构函数里的。。不过你这么一说我有点想法。。试试先
追答:ab:cd:ef 对应i编号为0,1,2,3,4,5,6,7 冒号 的编号分别是2,5
while 开始 然后 if 不成立执行else 语句,这是i=0,str[i]和str[i+1] 分别是a,b然后加入到list中即"ab",然后i+2
下次while时i=2 str[2]==“:” 因此执行if语句,list添加一个“:" i+1
这样下去,没问题的吧。。
或者直接对字符串进行操作:
如果你的字符串的格式是确定的,仅仅是2个字符之间有冒号(:)隔开的话很容易:
public static ArrayList
ArrayList
char[] str = s.toCharArray();
int i=0;
while(i
i++;
continue;
}
else{
String temp = "";
temp += str[i];
temp += str[i+1];
list.add(temp);
i += 2;
}
}
return list;
}
你如果一定要String[] 类型的你可以再把list转换一下即可。追答
追问:目标字符串怎么设。。。全都要输出啊。。。目标字符串是不输出的啊。。。
追答:如果冒号也要的话,稍作修改:
public static ArrayList
ArrayList
char[] str = s.toCharArray();
int i=0;
while(i
list.add(":");
i++;
}
else{
String temp = "";
temp += str[i];
temp += str[i+1];
list.add(temp);
i += 2;
}
}
return list;
}
追问:while中匹配到冒号i就加一那到后面temp += str[i];不是从0开始了吗?
add是把字符串添加到新的数组里吗?
Pattern和Matcher木有接触过。。而且我是写在类的结构函数里的。。不过你这么一说我有点想法。。试试先
追答:ab:cd:ef 对应i编号为0,1,2,3,4,5,6,7 冒号 的编号分别是2,5
while 开始 然后 if 不成立执行else 语句,这是i=0,str[i]和str[i+1] 分别是a,b然后加入到list中即"ab",然后i+2
下次while时i=2 str[2]==“:” 因此执行if语句,list添加一个“:" i+1
这样下去,没问题的吧。。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯