当前位置: 首页 > 知识库问答 >
问题:

Java中的字符串分裂给出了意想不到的结果

吴兴国
2023-03-14

我有一系列字符串,格式如下:“动物||类型||区域||”。

在Java中,我试图拆分字符串,以便只显示第一部分。我在网上读到的所有信息都表明,要拆分字符串:

String animalString = "animal || type || area"
String animalArray[] = animalString.split("||")

System.out.println("result = " + Arrays.toString(animalArray));

然而,当我拆分字符串时,它不仅基于“| |”除法拆分,而是拆分每个字母:

result = [a, n, i, m, a, l,  , |, |,  , t, y, p, e,  , |, |,  , a, r, e, a,  , |, |]

当我向拆分方法添加分隔符时,它会分隔字符串的第一部分,所以这是无效的。

如何拆分具有上述格式的字符串,以便我可以在数组中获得三个单词本身,而不仅仅是字母?

共有1个答案

束涵涤
2023-03-14

您需要对它们进行双重转义。一次用于String,一次用于regex\\转义斜杠,以便它可以作为转义|\|传递给regex。

\\s*允许在|

String animalString = "animal || type || area";
String animalArray[] = animalString.split("\\s*\\|\\|\\s*");

System.out.println("result = " + Arrays.toString(animalArray));

指纹

result = [animal, type, area]
 类似资料:
  • 我试图使用hashlib对字节数组进行散列,但是我无法使散列与我期望的匹配(通过在线SHA256函数确认答案)。 我是这样做的: 在执行哈希之前,我打印出输入数据的十六进制摘要: 我做错了什么?

  • 我有一个逗号分层的字符串,当调用时,它返回大约60的数组大小。在特定的用例中,我只需要从数组中返回第二个值的值。例如,

  • 问题内容: 我不知道以下行为, 以上语句的输出如下: 假 str1 == str2是 为什么会这样呢?为什么输出不是这样的: str1 == str2是 str1 == str2是 问题答案: 的优先级高于。 所以你的代码: 将有效地 因此,您得到了。 在情况2 您已显式使用花括号与(是)进行比较,然后附加值。

  • 问题内容: 我有以下python代码。 我得到以下日志打印输出。 如果我使用split(),btw代替split(’‘),则会得到相同的日志打印输出。 为什么split不将结果分成6个条目的列表?我想问题是涉及到http请求,因为我在gae交互式控制台中的测试获得了预期的结果。 问题答案: 不修改字符串。它返回拆分列表。如果要使用该列表,则需要使用来将其分配给某些内容。

  • 问题内容: 我正在解决一个简单的问题: 在Java中删除字符数组中的某些字符,想法很简单: 我想输入一个信号,表示当我们想要使用例如生成一个字符串时,不必考虑数组的其余部分 Java中是否有这样的字符?(我想是,但我不确定) 例如,当我们调用: 这将被打印: 虽然我想得到,但我不想使用新的数组来做到这一点 问题答案: Java不会像C那样“标记”字符串的结尾。它跟踪长度和值,因此字符串中可以包含零

  • 我试图了解是如何工作的,以及拆分器是如何设计的。我认识到可能是更重要的方法之一,但是当我看到一些第三方实现时,有时我看到他们的拆分器无条件地为返回null。 问题: 普通迭代器和无条件返回null的拆分器有何不同?这样的分裂者似乎违背了分裂的目的