关于java:使用Java-Stringsplit方法必须注意这三点98的程序员都不知道一看就是老营销号了

4次阅读

共计 1577 个字符,预计需要花费 4 分钟才能阅读完成。

观众敌人们大家好,这里是小码看世界。
Java 的 String.split()办法置信大家都很不会很生疏,近日,中国一互联网码农小哥在应用 Java String.split()办法时,遇到了一个神奇的问题,这到底是怎么回事呢,咱们一起来看一看吧~

这位小哥写了一个 String 转 char[][]的办法,其中须要应用 split 办法来宰割每个 char[]与每个 char[][]:

public static char[][] create2DCharArray(String arrayContent, String itemSplit, String lineSplit) {String newArrayContent = arrayContent.trim();
 String[] rows = newArrayContent.split(lineSplit);
 if (rows.length > 0) {String[] items = rows[0].split(itemSplit);
 char[][] result = new char[rows.length][items.length];
 for (int i = 0; i < items.length; i++) {result[0][i] = items[i].charAt(0);
 }
        for (int i = 1, lengthI = rows.length; i < lengthI; i++) {items = rows[i].split(itemSplit);
 for (int j = 0, lengthJ = items.length; j < lengthJ; j++) {result[i][j] = items[j].charAt(0);
 }
        }
        return result;
 } else {return new char[][]{};
 }
}

只见这位小哥在应用该办法的时候是这样传参的,他打算应用 ”|” 来辨别每个一维数组元素,用 ”,” 来辨别每个二位数组元素:

public static void main(String[] args) {char[][] matrix = CreateTools.create2DCharArray("1,0,1,0,0|1,0,1,1,1|1,1,1,1,1|1,0,0,1,0", ",", "|");
 PrintTools.print(matrix);
}

然而输入的后果却令他感到十分诧异,本应该生成的二维数组的每个元素居然是给定的字符串 "1,0,1,0,0|1,0,1,1,1|1,1,1,1,1|1,0,0,1,0" 中的每个字符!:

于是小哥网上查找了一下 split 办法所须要留神的问题,依照这篇文章所说 https://blog.csdn.net/cccmercy/article/details/79058686

  1. Java 中,按某个字符宰割字符串应用的是 String 对象的 split() 办法,返回的是宰割之后的 String 数组,值得注意的是宰割符。当宰割符是 . 或者是 | 时,必须应用 \\ 进行本义。
  2. 没有加本义符按 . 宰割字符串,返回值是一个空的长度为 0 的 String 数组
  3. 没有加本义符按 | 宰割字符串,返回值是一个 长度为原字符串长度的 String 数组,它会截取字符串中每一个字符并放到 String 数组中

小哥,依据文章中的办法进行了批改,果然获取到的想要的格局:

    public static void main(String[] args) {char[][] matrix = CreateTools.create2DCharArray("1,0,1,0,0|1,0,1,1,1|1,1,1,1,1|1,0,0,1,0", ",", "\\|");
        PrintTools.print(matrix);
    }

好了,以上就是小码看世界的全部内容了,如果喜爱的话就点个关注,有什么想与小码交换的,请在评论区留言。咱们下期再见~

哈哈哈哈哈哈哈哈哈哈,我编不上来了

正文完
 0