2014-01-24 86 views
-1

我有两个字符串:stringOne和stringTwo。找到string1包含字符串2的索引?

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

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

的这个有点反,但我也有第三个字符串:

String stringThree = "       "; 

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

String stringThree = "    JAVA  "; 

任何想法?

+0

使用String方法'int indexOf(String)'。 – AntonH

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html - 知道在哪里看(API) – user2864740

回答

1

你可以使用str.indexOf(substr)返回一个字符串的索引str,并str.substring(start, end)方法:

公共字符串的子串(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); 
} 

你想操纵startend参数传递给,以获得预期的输出。

3

您正在寻找indexOf()方法。

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

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

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