问一个关于字符串如何转化为字符串数组的问题

String[] tokens = WHITESPACE_PATTERN.split(readAll());
小白一枚,最近在看算法,他的源代码有段这个数组,右边那个READALL返回的是一个字符串,怎么得到了一个数组的? 谢谢!!

这个得看WHITESPACE_PATTERN是什么值,readAll()是什么值。如果WHITESPACE_PATTERN=‘WHITESPACE_PATTERN’,readAll()='-',那么tokens[0]=‘WHITESPACE’;tokens[1]=‘PATTERN’

split() 方法就是把字符串分割成数组。
例如
string str="a,b,c"
var res=str.split(',');//根据逗号分割
res 就是一个数组

这个问题主要就是split()方法的使用问题。
例如:
String str = "aaa|bbb|ccc";
String[] strs = str.split("|"); // strs = ["aaa", "bbb", "ccc"];

API中有介绍,方法split()存在于java.util.regex Pattern类中,具有分割功能:
public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
形参是正则法则字符串regex,普通字符串通过调用方法split(String regex)将自身分割成若干子字符串,并存储于字符串数组中

 String s = "aa,bb,cc";
        //定义一个可以匹配到 , 的正则表达式
        String reg = "," ;
        //使用split(String reg)切割字符串
        String[] strs = s.split(reg);
        //打印数组
        for (int i = 0; i < strs.length; i++) {
            System.out.println(strs[i]);
        }
        /**
         *  输出结果为:
         *  aa
         *  bb
         *  cc
         */

split就是指的把一个字符串切割成多个字符串,多个字符串不就是一个字符串数组吗。源码和API都告诉了你返回的是一个String[]数组图片说明