在JAVA中“1aa”用spilt按a拆分为什么数组为1[1]而不是[1,,] java中拆分字符中的“split(":")[0].subs...

java\u4e2d\u5982\u4f55\u7528split\u5bf9\u4e00\u4e2a\u5b57\u7b26\u4e32\u6309\u9017\u53f7\u548c\u5206\u53f7\u5206\u5272\u6210\u6570\u7ec4

import java.util.Arrays;public class Day21_A {public static void main(String[] args) {String[] arr=new String("\u5f20\u4e09,\u674e\u56db,\u738b\u4e94;\u8d75\u516d").split("[\\,\\;]");System.out.println(Arrays.toString(arr));}}

\u5b57\u7b26\u4e32\u7684split(regex)\u65b9\u6cd5\u8fd4\u56de\u7684\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\u6570\u7ec4,\u770b\u4ee3\u7801:

String str = "a:b:c"; // \u5b9a\u4e49\u4e00\u4e2a\u5b57\u7b26\u4e32 a\u5192\u53f7b\u5192\u53f7c

String[] strArr = str.split(":"); // \u7528\u5192\u53f7\u4f5c\u4e3a\u5206\u9694\u7b26,\u62c6\u5206\u5b57\u7b26\u4e32\u4e2d\u5b50\u5b57\u7b26\u4e32,\u5f97\u5230\u4e00\u4e2a\u5b50\u5b57\u7b26\u4e32\u7684\u6570\u7ec4
// \u8fd9\u4e2a\u5b57\u7b26\u4e32\u6570\u7ec4\u6709\u4e09\u4e2a\u5143\u7d20

strArr[0] = "a";

strArr[1] = "b";
strArr[2] = "c";

\u4e0a\u9762\u662f\u5148\u5b9a\u4e49\u4e86\u5b57\u7b26\u4e32\u5bf9\u8c61\u548c\u5b57\u7b26\u4e32\u6570\u7ec4\u7684\u5f15\u7528,\u53ef\u4ee5\u660e\u663e\u770b\u51fa\u6765,split(regex)\u65b9\u6cd5\u662f\u7528\u6765\u5206\u5272\u5b57\u7b26\u4e32,\u53c2\u6570regex\u5c31\u662f\u770b\u62db\u4ec0\u4e48\u6765\u5206\u5272,\u4e0a\u9762\u7684\u5b57\u7b26\u4e32\u4e2d\u6bcf\u4e2a\u5b57\u6bcd\u4e2d\u95f4\u90fd\u6709\u4e00\u4e2a: (\u5192\u53f7),split(":")\u5c31\u8868\u793a\u7528\u5192\u53f7\u6765\u5206\u5272\u5b50\u4e32,\u6240\u4ee5\u5f97\u5230\u4e09\u4e2a\u5b50\u5b57\u7b26\u4e32 "a","b","c";\u8fd9\u4e2a\u4e09\u4e2a\u5b50\u4e32\u4f1a\u88absplit()\u65b9\u6cd5\u6784\u9020\u6210\u4e00\u4e2a\u6570\u7ec4\u8fd4\u56de

\u5982\u679c\u4e0a\u9762\u7684\u4ee3\u7801\u5199\u7b80\u5355\u7684\u4e00\u70b9\u5c31\u662f\u8fd9\u6837

"a:b:c".split(":")[0] = "a";
"a:b:c".split(":")[0] = "b";
"a:b:c".split(":")[0] = "c";

\u697c\u4e3b\u53ef\u4ee5\u81ea\u5df1\u6d4b\u8bd5\u4e00\u4e0b\u4e0b\u9762\u8fd9\u4e2a\u4ee3\u7801

String str = "I am a chinese"; // \u6ce8\u610f,\u6bcf\u4e2a\u5355\u8bcd\u4f7f\u7528\u7a7a\u683c\u5206\u5f00\u7684
String strArr = str.split(" "); // \u5206\u5272\u5b57\u7b26\u662f\u7a7a\u683c,\u6ce8\u610f

for (int i = 0; i < strArr.length; i++) { // \u628a\u6570\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u6253\u5370\u51fa\u6765\u770b\u770b
System.out.println(strArr[i]);

}

for (int i = 0; i < "you are a chinese too".length; i++) {

System.out.println("you are a chinese too".split(" ")[i]);

}

\u653e\u5230main\u51fd\u6570\u4e2d\u6267\u884c\u4e00\u4e0b\u4e00\u76ee\u4e86\u7136

split有两个方法,名字一样,参数不一样。
split(“1aa”)和split("1aa”,n),后面那个n是指运行多少次的意思,这里n如果大于0,则运行n-1次,数组最后一项将包含超出截取字符以后的全部内容;如果n等于0,则相当于没有加这个参数一样,在你这道题的例子里,最后截取出来的空格也不会在数组里出现;如果n小于0,那么将运行无限多次,在你这道题的例子里,空格将会放入数组里。所以如果想精确获得你要的数组,就调用后面的方法,并且将第二个参数设置成-1即可。

比如你有一个字符串 "111:222:333" ,首先,split 把 111,222,333分别放到数组。
[0] 就是取第一个数, 111 。 subString(1)就是从第2个位置截取 111,结果 11 。

不包含分隔符

扩展阅读:mac蜜桃奶茶314 ... 免费源码资源源码站在线 ... 国产377vc精华真能祛斑吗 ... 黑马java视频 ... javascript高级视频 ... java heap space ... 国内永久免费的云服务器 ... www.sony.com.cn ... javascript免费 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网