【问题标题】:how to store matched elements from list in java如何在java中存储列表中的匹配元素
【发布时间】:2018-06-23 09:58:48
【问题描述】:
how to convert ascii value of 49 to actual char in java

我的代码在下面,我正在尝试存储不是以前缀 a 或 g 开头的列表中的元素

 void display(){
    String[] inpArray={"apple","orange","grapes"};
    LinkedList<String> listOne = new LinkedList<String>(Arrays.asList(inpArray));
    LinkedList<String> listTwo = new LinkedList<String>();
    listTwo.add("melon");
    listTwo.add("apple");
    listTwo.add("mango");
    String[] result1 = {};
    for(String res : listOne){

    if(res.startsWith("a")||res.startsWith("g")){
        System.out.println("--> "+res);
    }else{
        System.out.println("** "+res);
        //result1 = res;//unable to store in string array or to list
        // here i have to add all strings how to do that please help me
    }

【问题讨论】:

  • listOne.stream().filter(s -&gt; s.startsWith("a") || s.startsWith("g")).collect(toList())

标签: java arrays string list


【解决方案1】:
Please find the code for storing the element in String array using index i;

package com.test.stackoverflow;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class TestClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        display();
    }

    public static void display() {
        String[] inpArray = { "apple", "orange", "grapes" };
        List<String> listOne = new ArrayList<String>(Arrays.asList(inpArray));
        List<String> listTwo = new ArrayList<String>();
        listTwo.add("melon");
        listTwo.add("apple");
        listTwo.add("mango");
        String[] result1 = new String[listOne.size()];
        int i =0;
        for (String res : listOne) {

            if (res.startsWith("a") || res.startsWith("g")) {
                System.out.println("--> " + res);
            } else {
                System.out.println("** " + res);
                result1[i++] = res;
            }
        }

        for(String val : result1){
            System.out.println("Value"+val);
        }
    }

}

【讨论】:

  • 不错的兄弟,我在获取 listone 元素后完成了我使用 add 函数合并两个列表的任何方法,您如何做到这一点甚至更简单感谢您从您那里学到的新逻辑......
【解决方案2】:

如果要将元素存储到数组中,可以先将它们放入List,然后通过List.toArrayList转换为数组:

LinkedList<String> linkedList = new LinkedList<>();
for (String res : listOne) {
    if (res.startsWith("a") || res.startsWith("g")) {
        System.out.println("--> " + res);
    } else {
        System.out.println("** " + res);
        linkedList.add(res);
    }
}
String[] result1 = new String[linkedList.size()];
linkedList.toArray(result1);

【讨论】:

  • 嗨,约翰,感谢您抽出宝贵时间,我已经相应地更新了我的代码,但低于错误 LinkedList linkedList = null;//我已经声明了新数组 result1 = linkedList.toArray(new String[0] );//这行抛出空指针异常
  • return linkedList.toArray(new String[linkedList.size()]).
  • 约翰让我再试一次,感谢您的时间
  • @BoristheSpider void display(),看来 OP 不想返回数组...
  • 低于输出结果 1 system.out.println(result1) 显示在结果下方 [Ljava.lang.String;@15db9742
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多