中易网

Java中ab:cd:ef这样的字符串,怎么用split函数解析为string数组

答案:1  悬赏:60  
解决时间 2021-01-30 15:56
Java中ab:cd:ef这样的字符串,怎么用split函数解析为string数组
最佳答案
你可以使用java中的正则表达式来解析,java中用Pattern和Matcher使用正则表达式。
或者直接对字符串进行操作:
如果你的字符串的格式是确定的,仅仅是2个字符之间有冒号(:)隔开的话很容易:
public static ArrayList mySplit(String s){
ArrayList list = new ArrayList();
char[] str = s.toCharArray();
int i=0;
while(iif(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(iif(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
这样下去,没问题的吧。。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
河北钢铁搬迁马来西亚
填空在正方形、长方形和圆中,对称轴条数最多
奥迪A6的空调一边冷一边热,是怎么回事?
金属铼的标准电极电位是多少?
角向磨光机的角向是什么意思啊?
蜘蛛为什么会在家里出现,要怎样消灭它
脖子根部外面长了一根汗毛,怎么回事?
餐饮店装修的时候应该选择什么颜色
和男友分手快疯了
NGS生物里什么意思
崇山村地址有知道的么?有点事想过去
请别说爱上我是一个错,是什么歌名
为什么有的人屁大点儿的事儿都要发朋友圈或空
颍泉区索菲亚管业在什么地方啊,我要过去处理
西安适居房地产营销策划有限公司地址有知道的
推荐资讯
医生转行选择什么好?
下列关于我国植被问题的叙述中,错误的是( 
哺乳期结的奶块能自己散开吗
我18周 宋xx 17周岁 上班时间 他找我扳手腕,
魔兽世界代练 是不是真的
货车帮联系方式
印度吉三代获取的途径有哪些
从闵行北桥到南桥车站的车有那些?
人造革臭味道怎么去除,新的皮衣
js 销售代表是什么意思?腾讯要我老婆去面试
( )( )日上括号里填什么
在学校被人偷钱怎么办?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?