Java 检查一个字符串是否包含另一个,如果是,在什么索引处

Java 检查一个字符串是否包含另一个,如果是,在什么索引处,java,string,hashmap,Java,String,Hashmap,我一直无法在网上、StackOverflow或其他地方找到解决方案,所以我想我会在这里发布 假设有一个名为String1的字符串。还有许多其他字符串,如StringA、stringB、StringC。。。斯特林茨 String1将只包含这些字符串中的一个(StringA-Z),它的前后可能包含额外的字符(从某种意义上说,StringA-Z隐藏在String1中) 现在,我们如何检查String1中包含哪些StringA-Z,以及在哪些索引处,以便能够修剪String1(或者保持原样,如果是这样的

我一直无法在网上、StackOverflow或其他地方找到解决方案,所以我想我会在这里发布

假设有一个名为String1的字符串。还有许多其他字符串,如StringA、stringB、StringC。。。斯特林茨

String1将只包含这些字符串中的一个(StringA-Z),它的前后可能包含额外的字符(从某种意义上说,StringA-Z隐藏在String1中)

现在,我们如何检查String1中包含哪些StringA-Z,以及在哪些索引处,以便能够修剪String1(或者保持原样,如果是这样的话),使其最终与所包含的字符串匹配

谢谢 -cp15


编辑:已解决。感谢所有回复的人。看起来在StackOverflow上还有其他类似的问题,我记得读过一两篇,但我认为我的情况不同。原来我只是把indexOf()和substring()混淆了。

使用indexOf方法怎么样

If (string1.indexof(stringA) != -1){
    // it does exists. Do something with it..
}


这只是我的想法,但是如果我理解正确的话,这应该足够了,我不确定你为什么要使用一个每个键都映射到自身的
HashMap
,所以我将使用一个
String
s(
stringList
)列表来演示如何做到这一点

for (String stringX : stringList) {
    // Get the starting index of stringX in string1
    int index = string1.indexOf(stringX);
    // index will be -1 if stringX is not within string1
    if (index != -1) {
        // Do what you want here, then break since there is only one match
        // and we already found it.
        break;
    }
}

如果您确实想使用
HashMap
(我称之为
stringMap
),只需将
stringList
更改为
stringMap.keySet()
stringMap.values()
(因为它们都是相同的)。

这是您的任务吗?或者发布你的代码,这样会有帮助。@NomeshDeSilva不,不是作业。只是娱乐性地编码,然后被难住了。我想我可以尝试重新措辞并添加更多内容information@andrewdleach我不想成为开发人员,也不想成为开发人员,现在只是为了好玩而编写代码。发布此问题是因为我在网上找不到其他类似的问题,我想如果将来有人遇到类似问题,它可能会有所帮助。@ChillzDude您需要在这里使用地图吗,或者你真的只是想知道一个给定的字符串是否包含几个可能的字符串中的一个?@ChillzDude你考虑过使用正则表达式吗?顺便说一句,开始自己编写代码是一种荣耀;事情就是这样开始的。是的,我刚刚意识到这一点,并在你回复时编辑了这篇文章。我想我找到了解决办法,谢谢你的帮助help@ChillzDude很高兴你能找到答案,如果其中一个帮助回答你的问题,请接受答案(绿色复选标记)。正确的:)我知道我可以使用indexOf并检查它是否为-1,但我不知道我可以将我的it用作indexOf(stringA)。我认为它必须是indexOf(someInt),当我输入这个时,我意识到我把indexOf和substring(beginIndex,endIndex)混在一起了,这两个都需要int,因此出于某种原因造成了混淆。非常感谢。