Java 将arraylist的所有值与字符串进行比较

Java 将arraylist的所有值与字符串进行比较,java,arraylist,compare,Java,Arraylist,Compare,我有一个数组列表abc,它具有某些值- ArrayList< String > abc = new ArrayList<>(); abc.add("hi"); abc.add("hello Yash"); abc.add("i am Yash"); String x = "Yash"; ArrayListabc=newarraylist(); abc.添加(“hi”); abc.add(“你好,亚什”); abc.添加(“我是亚什”); 字符串x=“Yash”; 现在

我有一个数组列表
abc
,它具有某些值-

ArrayList< String > abc = new ArrayList<>();
abc.add("hi");
abc.add("hello Yash");
abc.add("i am Yash");
String x = "Yash";
ArrayListabc=newarraylist();
abc.添加(“hi”);
abc.add(“你好,亚什”);
abc.添加(“我是亚什”);
字符串x=“Yash”;
现在,我想知道
x
是否包含在
abc
的任何元素中

如果是,则获取包含
x
的元素的索引

您可以通过两种不同的方式实现这一点

  • 老派
  • 兰巴斯之路
  • 老派的例子:
    publicstaticvoidmain(字符串[]args){
    List abc=new ArrayList();
    abc.添加(“hi”);
    abc.add(“你好,亚什”);
    abc.添加(“我是亚什”);
    字符串x=“Yash”;
    List resultOldSchool=new ArrayList();
    for(字符串句子:abc){
    如果(句子包含(x)){
    结果学校增加(句子);
    }
    }
    System.out.println(resultOldSchool);
    }
    

    Lambdas方式示例:
    publicstaticvoidmain(字符串[]args){
    List abc=new ArrayList();
    abc.添加(“hi”);
    abc.add(“你好,亚什”);
    abc.添加(“我是亚什”);
    字符串x=“Yash”;
    List resultJava8=findStringInList(abc,x);
    如果(!resultJava8.isEmpty()){
    System.out.println(resultJava8);
    }
    }
    公共静态列表findStringInList(最终列表,最终字符串strng){
    return list.stream().filter(s->s.contains(strng)).collect(Collectors.toList());
    }
    

    请随意决定……

    假设
    abc
    是一个
    列表
    ,而
    x
    是一个
    字符串
    ,那么这就可以了

    List<Integer> indexes = new LinkedList<Integer>();
    for(int i = 0; i < abc.size(); i++)
    {
        if(abc.get(i).contains(x))
             indexes.add(i);
    }
    
    List index=newlinkedlist();
    对于(int i=0;i

    循环完成后,包含
    x
    的元素的所有索引都将出现在
    索引列表中。

    以下是一个简单的解决方案:

    public class FindText
    {
    
    
        public static void main(String[] args)
        {
            ArrayList< String > abc = new ArrayList<>();
            abc.add("hi");
            abc.add("hello Yash");
            abc.add("i am Yash");
            String x = "Yash";
    
            for(int i=0; i<abc.size(); i++)
            {
                if(abc.get(i).contains(x))
                {
                    int index = i;
                    System.out.println(index);
                }
            }
        }
    }
    
    公共类FindText
    {
    公共静态void main(字符串[]args)
    {
    ArrayListabc=newarraylist();
    abc.添加(“hi”);
    abc.add(“你好,亚什”);
    abc.添加(“我是亚什”);
    字符串x=“Yash”;
    
    对于(int i=0;i)您应该编写一个regexp并通过arraylist进行交互,然后如果它匹配,则返回索引。我刚刚开始向您展示您迄今为止所做的尝试,这是一个可能重复的问题
    List<Integer> indexes = new LinkedList<Integer>();
    for(int i = 0; i < abc.size(); i++)
    {
        if(abc.get(i).contains(x))
             indexes.add(i);
    }
    
    public class FindText
    {
    
    
        public static void main(String[] args)
        {
            ArrayList< String > abc = new ArrayList<>();
            abc.add("hi");
            abc.add("hello Yash");
            abc.add("i am Yash");
            String x = "Yash";
    
            for(int i=0; i<abc.size(); i++)
            {
                if(abc.get(i).contains(x))
                {
                    int index = i;
                    System.out.println(index);
                }
            }
        }
    }