.toString.split(","); 中产生了多少个字符串;称呼?
How many strings are produced in a .toString.split(","); call?
假设我有以下代码:
StringBuilder sb = new StringBuilder("521,214");
String[] result = sb.toString().split(",");
我的问题是:toString().split(",")
生成 2 个字符串还是 3 个字符串?
我知道结果字符串数组将有 2 个字符串 - 但 toString()
调用也会生成一个字符串 - 没有返回?
基本上,我试图限制为性能目的创建的字符串数量,并且想知道 toString()
调用是否使创建的字符串总数达到 3?
does toString().split(",") generate 2 strings or 3 strings
既不是2也不是3,拆分returns一个数组对象,数组已经由字符串组成就是另外一回事了...
如果您的问题是该数组中有多少个字符串,那么答案是:这取决于在您要拆分的原始字符串中找到多少标记 (",")...
它将创建一个包含 2 个字符串的字符串数组。
您可以随时通过打印数组进行测试:
StringBuilder sb = new StringBuilder("521,214");
String[] result = sb.toString().split(",");
for(String s : result)
System.out.println(s);
方法 .split()
将 删除 您作为分割依据的字符串。
这两行一共创建了五个String
对象:
"521,214"
对象传递给 StringBuilder
的构造函数。这个对象在字符串的内部池中,
","
字符串对象传递给 split
。该对象也在驻留字符串池中,
toString
生成的等效 "521,214"
对象。每次调用 toString
都会生成一个新的 String
对象。没有优化以查看之前是否请求过相同的字符串对象。
split
方法 为 "521"
和 "214"
生成了两个 String
对象
不用说,将创建一个 String[]
数组对象来保存从 split
方法返回的 "521"
和 "214"
对象。
假设我有以下代码:
StringBuilder sb = new StringBuilder("521,214");
String[] result = sb.toString().split(",");
我的问题是:toString().split(",")
生成 2 个字符串还是 3 个字符串?
我知道结果字符串数组将有 2 个字符串 - 但 toString()
调用也会生成一个字符串 - 没有返回?
基本上,我试图限制为性能目的创建的字符串数量,并且想知道 toString()
调用是否使创建的字符串总数达到 3?
does toString().split(",") generate 2 strings or 3 strings
既不是2也不是3,拆分returns一个数组对象,数组已经由字符串组成就是另外一回事了...
如果您的问题是该数组中有多少个字符串,那么答案是:这取决于在您要拆分的原始字符串中找到多少标记 (",")...
它将创建一个包含 2 个字符串的字符串数组。
您可以随时通过打印数组进行测试:
StringBuilder sb = new StringBuilder("521,214");
String[] result = sb.toString().split(",");
for(String s : result)
System.out.println(s);
方法 .split()
将 删除 您作为分割依据的字符串。
这两行一共创建了五个String
对象:
"521,214"
对象传递给StringBuilder
的构造函数。这个对象在字符串的内部池中,","
字符串对象传递给split
。该对象也在驻留字符串池中,toString
生成的等效"521,214"
对象。每次调用toString
都会生成一个新的String
对象。没有优化以查看之前是否请求过相同的字符串对象。split
方法 为
"521"
和 "214"
生成了两个 String
对象
不用说,将创建一个 String[]
数组对象来保存从 split
方法返回的 "521"
和 "214"
对象。