Java 在数组列表中显示符号之前,如何将数据一直存储到字符串中?
我试图将数据从ArrayList存储到字符串,直到出现一个符号。例如,有一个ArrayList,其中包含以下项: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 = "
{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));
系统输出打印项次(结果);
}
到目前为止,您的代码是什么?遗憾的是,我的代码中没有针对这个特定问题的代码。我尝试了一些方法,但它们显示了一种模式。我需要一些不需要的东西。然后请添加确实显示模式的代码,以便我们可以帮助您使用代码。