Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在数组列表中显示符号之前,如何将数据一直存储到字符串中?_Java_String_Loops_Arraylist - Fatal编程技术网

Java 在数组列表中显示符号之前,如何将数据一直存储到字符串中?

Java 在数组列表中显示符号之前,如何将数据一直存储到字符串中?,java,string,loops,arraylist,Java,String,Loops,Arraylist,我试图将数据从ArrayList存储到字符串,直到出现一个符号。例如,有一个ArrayList,其中包含以下项: {Start, at , - , Bob, amazing, gold, -, Peter, pan, Bright, shine, - , Sugar, shack -, lol, -} 我用随机名称进行演示,但不管是谁,我都试图将数据存储在一个字符串中,直到它看到一个符号为止。 因此,对于上述列表,数据将以以下方式存储在多个字符串中: String first = "

我试图将数据从ArrayList存储到字符串,直到出现一个符号。例如,有一个ArrayList,其中包含以下项:

{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"

上面的列表只是一个例子。我正在尝试实现一个代码,它可以处理任何列表。所以没有模式。代码应该将强数据保存到字符串中,直到看到符号为止。关于我如何做到这一点有什么想法吗?请让我知道

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

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("[ -]+");
}
publicstaticvoidmain(字符串[]args){
List wordList=Arrays.asList(“开始”,“在”,“在”,“在”,“鲍勃”,“惊人”,“黄金”,“在”,“彼得”,“潘”,“光明”,“发光”,“在”,“糖”,“棚屋”,“在”,“lol”,“在”);
列表结果=新建ArrayList();
StringBuilder=新的StringBuilder();
for(字符串字:单词列表){
如果(isSymbol(字)){
add(builder.toString());
生成器=新的StringBuilder();
}否则{
如果(builder.length()!=0){
生成器。附加(“”);
}
builder.append(word);
}
}
如果(builder.length()>0){
add(builder.toString());
}
系统输出打印项次(结果);
}
公共静态布尔isSymbol(字符串名称){
返回name.matches(“[-]+”);
}
可能更简单:

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);
}
publicstaticvoidmain(字符串[]args){
List wordList=Arrays.asList(“开始”,“在”,“在”,“在”,“鲍勃”,“惊人”,“黄金”,“在”,“彼得”,“潘”,“光明”,“发光”,“在”,“糖”,“棚屋”,“在”,“lol”,“在”);
列表结果=新建ArrayList();
StringBuilder=新的StringBuilder();
for(字符串字:单词列表){
builder.append(word).append(“”);
}
String[]splits=builder.toString().split(“-”);
addAll(Arrays.asList(splits));
系统输出打印项次(结果);
}

到目前为止,您的代码是什么?遗憾的是,我的代码中没有针对这个特定问题的代码。我尝试了一些方法,但它们显示了一种模式。我需要一些不需要的东西。然后请添加确实显示模式的代码,以便我们可以帮助您使用代码。