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

基于String分隔符从字符串中获取子字符串列表

凌嘉勋
2023-03-14
String s = "I like an orange as well as apple but mostly apple. apple, orange are the best fruits.";

String[] delimiter = {"orange", "apple"};

我想像下面这样拆分这个字符串:

{“我喜欢一个”、“橘子”、“以及”、“苹果”、“但主要是”、“苹果”、“苹果”,“苹果”,“橘子”,“是最好的水果。”}

在上面,我已经拆分了基于水果橙和苹果的字符串,但这两个水果也是子字符串列表的一部分。

共有1个答案

邹昊
2023-03-14

使用这个答案:

public class Solution {
    public static String[] getTokens(String str, String[] delimeters) {
        if (delimeters.length == 0) {
            return new String[]{str};
        }
        // Create regex: ((?<=delimeter)|(?=delimeter))
        String delimetersConcatenatedWithOr = "(" + String.join(")|(", delimeters) + ")";
        String regex = "((?<=" + delimetersConcatenatedWithOr + ")|(?=" + delimetersConcatenatedWithOr + "))";
        // Split using regex
        return str.split(regex);
    }
    public static void main(String args[]) {
        String str = "I like an orange as well as apple but mostly apple. apple, orange are the best fruits.";
        String[] delimeters = {"apple", "orange"};
        for (String token : getTokens(str, delimeters)) {
            System.out.println("{" + token + "}");
        }
    }
}
 类似资料:
  • 我是 Perl 的新手,但根据我阅读的文档,看起来 Perl 中的 split 函数要求正则表达式模式而不是字符串分隔符作为第一个参数,但我发现使用 之类的东西仍然可以正确拆分字符串。 基于此,我尝试使用可变分隔符(例如。< code>print (split($var,$ string))[0] where < code > $ var = ' ' )并发现它不起作用。我做错了什么? 谢谢! 编

  • 我有两根绳子 在两种情况下,我应该删除

  • 问题内容: 我有一个清单 我正在尝试删除其超字符串已经在列表中的字符串。在这种情况下,结果应为: 我已经写了代码: 但它似乎不起作用。我读过,我们无法在列表上进行迭代时将其删除。因此,副本,而这是我的原始列表。 问题答案: l=[‘abc’,’abcdef’,’def’,’defdef’,’polopolo’] print [j for i, j in enumerate(l) if all(j

  • 我正在尝试拆分字段(在某个分隔符“;”)并将结果插入表中。最大值为5个子字符串,由“;”分隔。最多只有5个水果。如果只有水果列,如何拆分字符串以获得单独的水果。如果果数少于5,其余列将返回NA。 我首先创建了新列并将其全部设置为null。我尝试了以下代码,但它不起作用,如果水果比列少,其余列将只取最后一个水果的值而不是null。 是否还有其他信息可用于拆分字符串?

  • 我想从MySQL中的字符串中提取子字符串。该字符串包含多个子字符串,子字符串之间用逗号(',')分隔。我需要使用任何MySQL函数提取这些子字符串。 例如: 我想选择颜色字段并提取红色、黄色和绿色的子字符串,用逗号分隔。

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到