发布时间:2019-07-31 20:20:20
String s = "xxxxxxxxxxxxxxx#123#456#zzzzz";
int n = s.indexOf("#");
int k = s.indexOf("#", n+1);
String s2 = s.substring(n+1, k);
System.out.println(s2); A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz
int n = s.indexOf("#"); - 定义整变量n,并赋初值
indexOf("#"):省略了第2个输入变量,隐含其为1;即返回字符串s从第1个字符算起"#"这个字符的位置,也就是16;
int k = s.indexOf("#", n+1); - 定义整变量k,并赋初值
indexOf("#",n+1):返回字符串s从第n+1=16+1=17个字符算起"#"这个字符的位置,也就是3;
String s2 = s.substring(n+1, k); - 定义字符串变量s2,并赋初值
substring(n+1, k):返回字符串s从第n+1=16+1=17个字符算起的k=3个字符,也就是"123";
所以最后输出的s2的结果为:"123"
就是得到前两个#的位置,把中间输出啊
n是第一个#号的位置,k是第二个#的位置,s2是从第一个#后面的位置开始到第二个#结束的字符,所以是123。
是因为提取的字符就在第一第二之间。
答案就是123,因为提取的字符串是在第一个#和第二个#之间的。