Java 如何检查数组中的任何内容,在标题中显示为子字符串

Java 如何检查数组中的任何内容,在标题中显示为子字符串,java,Java,我的数组字符串中有一些预定义的公司名称 我试图检查数组中是否有任何内容在标题中显示为子字符串 这是我的节目标题有“INDIABULLS”这个词但为什么我没有 import java.util.Arrays; import java.util.List; public class Test { public static void main(String args[]) { String[] myFirstStringArray = new String[] {

我的数组字符串中有一些预定义的公司名称

我试图检查数组中是否有任何内容在标题中显示为子字符串

这是我的节目标题有“INDIABULLS”这个词但为什么我没有

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

public class Test {

    public static void main(String args[]) {

        String[] myFirstStringArray = new String[] {
                "INDIABULLS HOUSING FINANCE LTD.",
                "INDIABULLS REAL ESTATE LTD.", };
        try {
            List<String> wordList = Arrays.asList(myFirstStringArray);
            String title = "INDIABULLS HOUSING FINANCE Q2 NET UP 24% AT RS 555 CR";
            String[] titleWords = title.toUpperCase().split(" ");
            for (String word : titleWords) {
                if (wordList.contains(word)) {
                    System.out.println("Yes");
                    break;
                } else {
                    System.out.println("No");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
导入java.util.array;
导入java.util.List;
公开课考试{
公共静态void main(字符串参数[]){
字符串[]myFirstStringArray=新字符串[]{
“INDIABULLS住房金融有限公司”,
“INDIABULLS房地产有限公司”,};
试一试{
List wordList=Arrays.asList(myFirstStringArray);
String title=“INDIABULLS住房金融第二季度净增长24%,达到555卢比”;
字符串[]titleWords=title.toUpperCase().split(“”);
for(字符串字:titleWords){
if(wordList.contains(word)){
System.out.println(“是”);
打破
}否则{
系统输出打印项次(“否”);
}
}
}捕获(例外e){
e、 printStackTrace();
}
}
}

这是因为字符串数组将包含
[“INDIABULLS”,“HOUSING”,…]
,而您的单词列表包含
[“INDIABULLS HOUSING FINANCE LTD.”,“INDIABULLS REAL ESTATE LTD.”


因此,当您检查单词列表是否包含字符串“INDIABULLS”时,它返回false,因为它不包含这样的字符串。

这是因为字符串数组将包含
[“INDIABULLS”,“HOUSING”,…]
,而您的单词列表包含
[“INDIABULLS HOUSING FINANCE LTD.”,“INDIABULLS REAL ESTATE LTD.”


因此,当您检查单词列表是否包含字符串“INDIABULLS”时,它返回false,因为它不包含这样的字符串。

您得到No的原因是因为在这一行中

if (wordList.contains(word))

您可以检查列表是否包含word,但您应该检查wordList(0)是否包含word,或者wordList(1)是否包含word。

您得到“否”的原因是因为在这一行中

if (wordList.contains(word))
您可以检查列表是否包含单词,但应该检查单词列表(0)是否包含单词,或者单词列表(1)是否包含单词。

此处

wordList.contains(word)
您正在检查标题中是否有每家公司的全名。例如,
“INDIABULLS”
存在于标题中,
“HOUSING”
也存在于标题中,但不存在公司全名
“INDIABULLS HOUSING FINANCE LTD.”

  • 一种解决方案是在
    wordList
    中的每个
    String
    上调用
    split(“”
    ),并迭代生成的
    String[]

  • 或者,对于可能更简单、拆分更少的解决方案,请使用以下for循环:

    for (String titleWord : titleWords) {
        for (String word : wordList) {
            if (word.contains(titleWord)) {
                System.out.println("Yes");
                break;
            } else {
                System.out.println("No");
            }
        }
    }
    
  • 这里

    您正在检查标题中是否有每家公司的全名。例如,
    “INDIABULLS”
    存在于标题中,
    “HOUSING”
    也存在于标题中,但不存在公司全名
    “INDIABULLS HOUSING FINANCE LTD.”

  • 一种解决方案是在
    wordList
    中的每个
    String
    上调用
    split(“”
    ),并迭代生成的
    String[]

  • 或者,对于可能更简单、拆分更少的解决方案,请使用以下for循环:

    for (String titleWord : titleWords) {
        for (String word : wordList) {
            if (word.contains(titleWord)) {
                System.out.println("Yes");
                break;
            } else {
                System.out.println("No");
            }
        }
    }
    
  • 包含(对象o)

    如果此列表包含指定的元素,则返回
    true
    。更多 形式上,返回
    true
    当且仅当此列表至少包含 一个元素
    e
    ,使得
    (o==null?e==null:o.equals(e))

    在您的例子中,
    word
    INDIABULLS
    ,而
    wordList
    包含

    wordList    String[2]
               [0]  "INDIABULLS HOUSING FINANCE LTD."
               [1]  "INDIABULLS REAL ESTATE LTD."
    
    因此
    contains()
    返回
    false

    按空格将
    单词列表
    拆分为
    字符串
    数组是一种解决方案。

    根据
    包含(对象o)

    如果此列表包含指定的元素,则返回
    true
    。更多 形式上,返回
    true
    当且仅当此列表至少包含 一个元素
    e
    ,使得
    (o==null?e==null:o.equals(e))

    在您的例子中,
    word
    INDIABULLS
    ,而
    wordList
    包含

    wordList    String[2]
               [0]  "INDIABULLS HOUSING FINANCE LTD."
               [1]  "INDIABULLS REAL ESTATE LTD."
    
    因此
    contains()
    返回
    false


    单词列表
    按空格拆分为
    字符串
    数组可能是一个解决方案。

    我认为您需要的是:

    import java.util.Arrays;
    import java.util.List;
    
    public class Test {
    
        public static void main(String args[]) {
    
            String[] myFirstStringArray = new String[] {
                    "INDIABULLS HOUSING FINANCE LTD.",
                    "INDIABULLS REAL ESTATE LTD.", };
            try {
                List<String> stringList = Arrays.asList(myFirstStringArray);
                String title = "INDIABULLS HOUSING FINANCE LTD. Q2 NET UP 24% AT RS 555 CR";
                String[] titleWords = title.toUpperCase().split(" ");
                for (String check : stringList) {
                    if (title.indexOf( check ) >= 0 ) {
                        System.out.println("Yes");
                        break;
                    } else {
                        System.out.println("No");
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    
    导入java.util.array;
    导入java.util.List;
    公开课考试{
    公共静态void main(字符串参数[]){
    字符串[]myFirstStringArray=新字符串[]{
    “INDIABULLS住房金融有限公司”,
    “INDIABULLS房地产有限公司”,};
    试一试{
    List-stringList=Arrays.asList(myFirstStringArray);
    String title=“INDIABULLS住房金融有限公司第二季度净增24%,报555卢比”;
    字符串[]titleWords=title.toUpperCase().split(“”);
    用于(字符串检查:字符串列表){
    if(title.indexOf(check)>=0){
    System.out.println(“是”);
    打破
    }否则{
    系统输出打印项次(“否”);
    }
    }
    }捕获(例外e){
    e、 printStackTrace();
    }
    }
    }
    
    我做了以下更改:

    • 标题
      字符串值固定为包含
      有限公司
      ,否则不匹配
    • 使用
      indexOf
      测试子字符串

    我想你想要的是:

    import java.util.Arrays;
    import java.util.List;
    
    public class Test {
    
        public static void main(String args[]) {
    
            String[] myFirstStringArray = new String[] {
                    "INDIABULLS HOUSING FINANCE LTD.",
                    "INDIABULLS REAL ESTATE LTD.", };
            try {
                List<String> stringList = Arrays.asList(myFirstStringArray);
                String title = "INDIABULLS HOUSING FINANCE LTD. Q2 NET UP 24% AT RS 555 CR";
                String[] titleWords = title.toUpperCase().split(" ");
                for (String check : stringList) {
                    if (title.indexOf( check ) >= 0 ) {
                        System.out.println("Yes");
                        break;
                    } else {
                        System.out.println("No");
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    
    导入java.util.array;
    导入java.util.List;
    公开课考试{
    公共静态void main(字符串参数[]){
    字符串[]myFirstStringArray=新字符串[]{
    “INDIABULLS住房金融有限公司”,
    “INDIABULLS房地产有限公司”,};
    试一试{
    List-stringList=Arrays.asList(myFirstStringArray);
    字符串title=“INDIABULLS外壳