【问题标题】:How to split the character list when certain character is reached and store it as a string in java到达某个字符时如何拆分字符列表并将其存储为java中的字符串
【发布时间】:2016-08-26 22:02:54
【问题描述】:

这是我的角色列表项:

ALPO..LASS....OBO.PARROT 

项目的字符数组列表包含“.”的组合和信件。我想在最后一个 '.' 时拆分字符。遇到并将值存储为字符串,或者将提取的字符串传递到字符串数组列表中。

预期输出:(字符串数组列表中需要)

ALPO
LASS
OBO
PARROT

我尝试使用:

for (int i = 0; ....)
{
    ....
    ArrayList<Character> answerchar = new ArrayList<Character>();
    static String outputs;
    outputs += answerchar;
    outputlist.add(outputs);
}

但是我得到了奇怪的结果。知道应该怎么做吗?

【问题讨论】:

    标签: java string arraylist split char


    【解决方案1】:

    把你的 char 数组变成一个字符串,然后用文字点分割:

    List<Character> chars; // given a list of 'A', 'L', 'P', 'O', '.', '.', 'L', 'A', 'S', 'S', etc
    
    List<String> list = Arrays.asList(chars.stream().map(String::valueOf)
      .collect(Collectors.joining("")).split("\\.+"));
    

    如果您特别需要ArrayList(不仅仅是任何列表实现):

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

    【讨论】:

    • 我得到的输出为 [[, , A, L, P, O, , , , , L, A, S, S, , 等。我不能将 ALPO 作为一个完整的单词并将其存储在字符串 ARRAY LIST @Bohemian 中吗
    • @Anusha 复制粘贴正则表达式,它应该与"\\.+" 完全相同。现场演示展示了它的工作原理
    • 要将字符数组转换为字符串,我使用了 String fullop = String.valueOf(answerchar) 其中 answerchar 是我的字符列表。然后我用字符串'fullop'继续你的回答@Bohemian
    • 我的输入将是 'A' ' L' 'P' 'O' 而不会像 ALPO 。这些是字符列表中的字母。而是硬编码值,将输入传递给字符列表,然后尝试继续。我没有得到预期的结果@Bohemian
    • 我在 CHARACTER LIST 中有字符,但在 CHARACTER ARRAY 中没有。当我尝试执行您的代码时,出现此错误 - ArrayList @Bohemian 类型的方法 split(String) 未定义
    【解决方案2】:

    你需要用多个 '.' 分割一个字符串。 , 一个点不起作用,所以你需要用多次出现的'.'进行分割
    尝试 ->

    的示例代码
    String inputString = "ALPO..LASS....OBO.PARROT";
    String[] stringArray = inputString.split("\\.+");
    for(int i = 0; i < stringArray.length; i++){
        System.out.println(stringArray[i]);
    }
    

    希望这应该可行。

    编辑 1- 它在我的最终 PFA 屏幕截图中工作。

    【讨论】:

    • 我得到的输出是 , A, L, P, O, , , L, A, S, S, O, , 并且我需要字符串数组列表中的单词 "ALPO" , "LASSO"
    • 请检查编辑的答案,我已经添加了输出截图。
    • 您可以通过在字符数组中传递输入并使用该数组进行测试来检查吗?我认为你得到了因为你正在硬编码字符串@Ajinkya Patil
    • 如果输入是 "..APLO..LASSO.." 如果字符串以 '...' 开头怎么办? @Ajinkya Patil
    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2019-04-16
    • 2013-03-07
    • 1970-01-01
    • 2019-12-17
    相关资源
    最近更新 更多