字符串 String str="TOM:89|JERRY:90|TONY:78"; 拆分两次第一次按 | 进行拆分,第二次按 : 进行拆分,最后的s2 应该会变成6组数据,为何只需输出 System.out.println(s2[0]+"---->"+s2[1]); 就能输出
TOM---->89
JERRY---->90
TONY---->78
public class Test1
{
public static void main(String args[]){
String str="TOM:89|JERRY:90|TONY:78";
String s1[]=str.split("\\|");
for(int x=0;x<s1.length;x++){
String s2[]=s1[x].split(":");
System.out.println(s2[0]+"---->"+s2[1]);
}
}
}
请详细阐述原理..谢谢
java 字符串拆分
答案:6 悬赏:80
解决时间 2021-02-03 11:16
- 提问者网友:呆萌心雨
- 2021-02-02 21:55
最佳答案
- 二级知识专家网友:木子香沫兮
- 2021-02-02 22:18
public class Test1
{
public static void main(String args[]){
String str="TOM:89|JERRY:90|TONY:78";
String s1[]=str.split("\\|");//这句话的意思是说 按 | 拆分字符串,得到一个数组,数组的内容是{TOM:89,JERRY:90,TONY:78}也就是说 s1[0] = TOM:89,S1[1]=JERRY:90,S1[2]= TONY:78
for(int x=0;x<s1.length;x++){ // 这句话的意思是说:把数组 s1 循环输出 得到 我上面说的那三个值;
String s2[]=s1[x].split(":"); //这句话的意思是 把s1的三个值(也就是上面的三个值,在按 : 拆分) 得到 最后的结果.
System.out.println(s2[0]+"---->"+s2[1]);
}
}
}
{
public static void main(String args[]){
String str="TOM:89|JERRY:90|TONY:78";
String s1[]=str.split("\\|");//这句话的意思是说 按 | 拆分字符串,得到一个数组,数组的内容是{TOM:89,JERRY:90,TONY:78}也就是说 s1[0] = TOM:89,S1[1]=JERRY:90,S1[2]= TONY:78
for(int x=0;x<s1.length;x++){ // 这句话的意思是说:把数组 s1 循环输出 得到 我上面说的那三个值;
String s2[]=s1[x].split(":"); //这句话的意思是 把s1的三个值(也就是上面的三个值,在按 : 拆分) 得到 最后的结果.
System.out.println(s2[0]+"---->"+s2[1]);
}
}
}
全部回答
- 1楼网友:都不是誰的誰
- 2021-02-03 02:14
第一次拆完之后s1={TOM:89,JERRY:90,TONY:78},length为3
循环:
对s1中的s1[o],s1[1],s1[2]循环拆分,
每次形成s2[0]----->s2[1],共三次。
为结果
- 2楼网友:兮沫♡晨曦
- 2021-02-03 01:22
首先要理解spit函数,这个函数以输入的正则来拆分成字符串,并且返回的是一维数组,所以在执行完String s1[]=str.split("\\|");时 s1是一个长度为3的一维。随后用一个for循环遍历这个一维数组,并且再次以冒号拆分成有一个一维数组s2,在按格式输出。
- 3楼网友:樣嘚尐年
- 2021-02-03 00:57
试试这个吧,好的话请采纳
public static void main(string[] args)
{
pattern p = pattern.compile("(.+)(\\d{4})");
matcher m = p.matcher("石家庄市0311");
if (m.find()){
system.out.println(m.group(1));
system.out.println(m.group(2));
}
}
- 4楼网友:茫然不知崩溃
- 2021-02-02 23:35
public class Test1
{
public static void main(String args[]){
String str="TOM:89|JERRY:90|TONY:78"; //定义字符串
String s1[]=str.split("\\|"); //转义字符,利用|拆分,得到结果s1[0]="TOM:89",s1[1]="JERRY:90"...
for(int x=0;x<s1.length;x++){ //通过for循环,遍历数组s1
String s2[]=s1[x].split(":"); //用s2存取被拆分的字符串,即:说s2[0] = "TOM",s2[1]="89"
System.out.println(s2[0]+"---->"+s2[1]); //问题的关键是每一次循环都把前面的s2给覆盖了
}
}
}
- 5楼网友:花一样艳美的陌生人
- 2021-02-02 22:53
spit函数用来拆分成字符串,且返回的是一维数组
所以String s1[]=str.split("\\|");第一次拆分时,拆分成s1是一个长度为3的一维(维度从0开始,是0,1,2,所以是长度为3),S1[x] 拆分的结果 {"TOM:89","JERRY:90","TONY:78"}。
第二次用一个for循环遍历这个一维数组,并且再次以冒号拆分成有一个一维数组s2(维从0开始,是0,1,长度为2),然后按拆分的格式输出:
TOM---->89
JERRY---->90
TONY---->78
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯