对于以下代码,
>
那么为什么“b”,“and”,“1”后面没有空字符串呢?
String[] splitStrs = "booo:and:fooo1o".split("o", -1);
System.out.println(splitStrs.length);
for (int i=0; i<splitStrs.length; i++) {
System.out.println("\"" + splitStrs[i]+ "\"");
}
输出为:
8
"b"
"
"
": and: f"
"
""
"1"
"
公共字符串[]拆分(字符串正则表达式,整数限制)参数:
regex–一个定界正则表达式
极限-由此产生的阈值
极限参数可以有3个值:
有关拆分的更多信息,请访问Geeksforgeks网站。
“booo:and:fooo1o”。拆分(“o”,-1);
为什么位置2,3,5,6,8有空字符串?
由于限制为-1,我们可以将其拆分任意次数。当使用“o”作为正则表达式时,它将给出它之前的所有值,因为没有值返回空字符串
那么为什么“b”,“and”,“1”后面没有空字符串呢?
没有空字符串,因为在上一个匹配的o之后有字符。
class Split{
public static void main(final String ... $){
var out = System.out;
final String s = "ooa";
for(final String str : s.split("o", -1))
out.println("\""+str+"\"");
}
}
$ javac Split.java && java Split
""
""
"a"
为什么会出现这种输出?
当第一个匹配发生时@index 0也是第一个字符,它返回前面的字符串,但是因为没有字符串,它返回一个空字符串。
然后,当第二次与o@index 1匹配时,它返回第一次匹配之后、索引1之前的字符串。因为没有字符,所以返回一个空字符串。
之后返回a。
split
方法将查找所有需要字符的地方(在您的示例“o”中),在当前“o”和下一个“o”之间放置一个新的(子)字符串,在数组中不包含“o”字符,然后继续整个字符串。
例如,当您有“oo”时,它将是“”,因为这两个“o”字符之间没有任何内容。
让我们举个例子。你有一句话:“哦,你好,安娜!我从2010年起就没见过你!”在每个有“a”字符的地方拆分这个字符串。
首先,从第一个字符开始,然后找到下一个字母“a”的位置,它位于第14个索引中。将字符串的一部分从起始位置移到“a”的位置,并将其添加到数组中。数组的第一个元素看起来像“哦,你好,安”(“A”和“A”是不同的字符)。然后从我找到的“a”(第14个索引)开始,找到下一个“a”,在我们的例子中是第20个索引。从第一个和第二个“a”中提取字符串的一部分,并将其复制到数组中。然后这个过程一直持续到字符串结束。
结果将是:
"Oh, hello Ann"
"! I h"
"vent seen you since 2010s!"
如果我们在每个“n”上拆分相同的字符串,通过使用相同的逻辑,我们将得到:
"Oh, hello A"
""
"a! I have"
"t see"
" you si"
"ce 2010s"
我在第二部分得到一个空字符串的原因是因为在“…安娜…”,这两个“n”字之间没有任何区别
以下是一些例子:https://www.geeksforgeeks.org/split-string-java-examples/
为什么位置2,3,5,6,8有空字符串?
在“o”上拆分时,“ooo”中的o之间没有任何内容,因此字符串为空。
那么为什么“b”,“and”,“1”后面没有空字符串呢?
但在输出的末尾有一个空字符串,即“1”后面。
根据文档,负的第二个参数具体表示“未丢弃尾随的空字符串”。
总是阅读文档。
我需要根据发票编号拆分pdf。例如发票号D0000003011,所有pdf页面应合并为单个pdf,依此类推。我怎样才能做到。..
它是这样的: 插入some_table(col1,col2,col3,col4) 选择col1、col2、my_func(col3)为new_col3、col4 现在我需要使用相同的逻辑返回两个值而不是一个值。 我可以简单地编写另一个函数来执行相同的逻辑并返回第二个值,但这将是昂贵的,因为该函数从一个大的历史表中进行选择。 我不能与历史表进行连接,因为该函数没有执行简单的select。
我的目标是通过API调用必应新闻搜索来获得匹配某个查询的结果。 我在用Zapier。我使用的是代码步骤,它可以采用Python或JavaScript。我目前有Python代码来调用API,如下所示... 这个很管用。它成功地调用并获得结果。 每个代码示例的最后一行似乎掌握着关键...在Javascript中,映射某些东西某些东西...? 下面是一个响应示例,每个请求...
问题内容: 我想从给定的字符串中找到所有数字(所有数字都与字母混合但用空格隔开)。我尝试拆分输入字符串,但是当检查结果数组时,我发现有很多空字符串,所以如何更改我的拆分正则表达式以删除此空白? 结果: 我知道我可以遍历数组并删除空结果。但是,仅使用正则表达式怎么办? 问题答案: 不要使用。使用将返回所有匹配子字符串的方法。你可以做到 将打印 根据您的正则表达式,看来您的目标也就是要删除前导零,例如
我有多行这样的代码,我试图将它们拆分并添加到3个不同的列表中。“~”将它们分开。 姓名~年龄~单词 姓名~年龄~单词 我用下面的代码将其拆分。 我有ArrayList年龄,ArrayList名字,ArrayList。。。。 当我进行拆分[0]时,它确实有效,并给出了名称。 但是当我做分裂[1]的时候,它会给我一个断点错误。 有什么帮助吗?你能给我推荐一个更好的方法吗?
我试图在使用RESTendpoint的骆驼路由中构建一个分割/聚合模式。它需要一个包含请求详细信息列表的请求对象。我想并行处理请求详细信息,然后将聚合结果返回给调用方。我希望这是一个同步调用。 这是我的路线中的代码。 我希望调用的结果是聚合调用(我的响应对象)的输出。但我实际上得到的是REST调用返回的请求对象?? 当我放入更多的日志语句时,我可以看到Split调用正在触发多个线程,这很好。我可以