【问题标题】:How to keep Storing data to a String until a symbol shows in the Array List?如何在数组列表中显示符号之前将数据存储到字符串?
【发布时间】:2020-11-11 06:17:54
【问题描述】:

我正在尝试将数据从 ArrayList 存储到字符串,直到出现符号。例如,有一个 ArrayList 包含以下 Items:

{Start, at , - , Bob, amazing, gold, -, Peter, pan, Bright, shine, - , Sugar, shack -, lol, -}

我放了随机名称进行演示,但是我尝试将数据存储在字符串中的任何人,直到它看到一个符号。 所以对于上面的列表,数据会以如下方式存储在多个字符串中:

String first = "Start at"
String second = "Bob amazing gold"
String third  = "Peter pan bright shine"
String forth = "Sugar shack"
String fifth = "lol"

上面的列表只是一个例子。我正在尝试实现一个适用于任何列表的代码。所以没有模式。代码应该将强数据保存到一个字符串中,直到它看到一个符号。关于我如何做到这一点的任何想法?请告诉我!

【问题讨论】:

  • 到目前为止你的代码是多少?
  • 遗憾的是,我的代码中没有针对此特定问题的任何代码。我尝试了一些方法,但它们显示出一种模式。我需要一些不需要的东西。
  • 那么请添加显示模式的代码,以便我们帮助您编写代码。

标签: java string loops arraylist


【解决方案1】:

您可以遍历列表中的每个元素并链接不包含符号的字符串。然后您可以将结果存储在列表中。

public static void main(String[] args) {

    List<String> wordList = Arrays.asList("Start", "at", "-", "Bob", "amazing", "gold", "-", "Peter", "pan", "Bright", "shine", "-", "Sugar", "shack", " -", "lol", "-");
    List<String> result = new ArrayList<>();
    StringBuilder builder = new StringBuilder();
    for (String word : wordList) {
        if (isSymbol(word)) {
            result.add(builder.toString());
            builder = new StringBuilder();
        } else {
            if (builder.length() != 0) {
                builder.append(' ');
            }
            builder.append(word);
        }
    }
    if (builder.length() > 0) {
        result.add(builder.toString());
    }
    System.out.println(result);
}

public static boolean isSymbol(String name) {
    return name.matches("[ -]+");
}

【讨论】:

    【解决方案2】:

    可能更简单:

    public static void main(String[] args) {
        List<String> wordList = Arrays.asList("Start", "at", "-", "Bob", "amazing", "gold", "-", "Peter", "pan", "Bright", "shine", "-", "Sugar", "shack", " -", "lol", "-");
        List<String> result = new ArrayList<>();
        StringBuilder builder = new StringBuilder();
    
        for (String word : wordList) {
            builder.append(word).append(" ");
        }
    
        String[] splits = builder.toString().split(" -");
        result.addAll(Arrays.asList(splits));
    
        System.out.println(result);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 2012-10-09
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2017-09-06
      • 2018-10-19
      相关资源
      最近更新 更多