找到string1包含字符串2的索引?

时间:2014-01-24 19:52:56

标签: java string

我有两个字符串:stringOne和stringTwo。

String stringOne = "JAVA";
String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE";

我可以很容易地找到Java是否在第二个字符串中(它是),我将如何索引它的开始和结束位置?我想初始化整数变量中的开始和结束位置:begPos = 14endPos = 18。我会用什么方法来做这件事?

与此相反,但我还有第三个字符串:

String stringThree = "                          ";

这是一堆空白。我想根据以前获得的位置把“JAVA”放在那里。我可以用字符串的其他部分替换字符串的部分,但我不知道如何替换特定的位置。最终结果应该是:

String stringThree = "              JAVA      ";

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您正在寻找indexOf()方法。

答案 1 :(得分:3)

String stringOne = "JAVA";
String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE";
int begin=stringTwo.indexOf(stringOne);
int end=begin+stringOne.length();
if(begin==-1){
    //not found
}

答案 2 :(得分:1)

您可以使用str.indexOf(substr)将子字符串的索引返回到strstr.substring(start, end)方法:

  

public String substring(int beginIndex,                  int endIndex)   返回一个新字符串,该字符串是此字符串的子字符串。子字符串从指定的beginIndex开始,并扩展到索引endIndex - 1处的字符。因此子字符串的长度为endIndex-beginIndex。

<强>代码:

public static void main(String[] args)
{
    String stringOne = "JAVA";
    String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE";

    int begPos = stringTwo.indexOf(stringOne);
    int endPos = begPos + stringOne.length();

    System.out.println(begPos + " " + endPos);

    String stringThree = "......................";
    stringThree = stringThree.substring(0, begPos) + stringOne + stringThree.substring(endPos);

    System.out.println(stringThree);
}

您希望操纵传递给start的{​​{1}}和end参数,以获得预期的输出。

答案 3 :(得分:1)

如果要修改字符串,请使用StringBuilder。

String str = "                            ";
String ins = "JAVA";
StringBuilder builder = new StringBuilder(str);
String result = builder.replace(14, 18, ins).toString();