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

使用正则表达式拆分字符将返回一个空值(Java值)

农鸿达
2023-03-14

以下是我的输入

null

我想在每个字符串到达“。”时将其分隔。并存储在字符串数组列表中。

我尝试使用下面的代码,

  ArrayList<String> words = new ArrayList<>    (Arrays.asList(chars.stream().map(String::valueOf)
      .collect(Collectors.joining("")).split("\\.+")));

null

预期产出:

阿尔波

拉波尔

实际输出:

""-&>;空白空间

拉波尔

它将列表的第一个值打印为空值,因为有许多“。”出现在'a'之前。如何摆脱字符串数组列表中的这个空值。任何帮助都很高兴!!

共有1个答案

郑承恩
2023-03-14

null

您需要先用 删除字符串开头的分隔符符号,然后拆分:

String results[] = "....ALPO..LAPOL.STRING".replaceFirst("^\\.+", "").split("\\.+");
System.out.println(Arrays.toString(results));

查看IDEONE演示

模式匹配字符串的开头(code/code>),然后匹配1个或多个文字点(code.+/code)。使用 是因为只需要一个替换(不需要使用

有关Java分裂的更多细节,请参见以下文档:

null

null

 类似资料:
  • 问题内容: 我是regex的新手,我想做的是在特定条件下拆分String,但我不知道该怎么做。 这是样品/条件 我希望字符串被拆分,,,,,, 这可能吗? 问题答案: 如果 确实 需要使用正则表达式,则可能应该使用环顾四周机制,因为您不想 在 此字符 之前 或 之后 进行拆分。 输出:

  • 问题内容: 我有以下显示这种格式的文件名: 我想提取第二个下划线之后和之前的中间两个时间戳部分。因此,我使用了以下Python正则表达式字符串拆分: 但这在返回的列表中给了我两个额外的空字符串: 如何仅获取两个时间戳信息?即我想要: 问题答案: 不要使用,使用正则表达式/对象的方法。 您甚至可以命名捕获组并在字典中检索它们,尽管您使用的不是。(这种情况下的regex模式将类似于)

  • 使用Java和正则表达式,我想从一行文本中提取字符串。文本可以采用以下格式- 键1(值1)键2(值2) 当使用类型#1时,我能够成功地提取键和值,我可以使用空格分割文本,然后使用以下模式提取键 对于案例#2和案例#3,可以使用复杂的代码逻辑来计算“(”的出现,并将其与空格的出现相匹配,但是,代码变得太长了。当值中也存在空格时,会出现多种复杂情况,因为这样,分割文本就会出现问题。 有没有更好的正则表

  • 我试图匹配正则表达式模式来替换特定字符串。 示例文本:ABC/1111111 031111111/0318*12345678 我想用“/1222”替换03和18 in/0318,即(2022年12月)。我尝试了string replaceAll方法,但它替换了提供的示例字符串中所有匹配的字符。比如下面; 我尝试过的示例代码: 样本文本。替换(匹配器组(2),“12”); 样本文本。替换(匹配器组(

  • 问题内容: 我有一个字符串,需要根据出现的“,”(逗号)进行拆分,但是需要忽略在一对括号内出现的任何字符串。例如, 应拆分为 问题答案: 对于非嵌套 嵌套 (括号内的括号)

  • 上下文:我需要拆分太长的字符串,这些字符串用作html表中的列标题。这些字符串是变量名,因此它们中没有空格。 如果让css属性执行此操作,则字符串将在固定位置拆分,而不是使用字符串中的点或。 例如,假设我有以下字符串: 使用点作为分隔符,我可以用很多很多不同的方法来分割它。但我提出了以下指导原则: 所有子串必须为12个字符或更少 分隔符[。_]应该在子字符串的末尾,而不是开头 子串的数量必须最小