Java 如何检查数组中的任何内容,在标题中显示为子字符串
我的数组字符串中有一些预定义的公司名称 我试图检查数组中是否有任何内容在标题中显示为子字符串 这是我的节目标题有“INDIABULLS”这个词但为什么我没有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[] {
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 (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 (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外壳