我有两个字符串:stringOne和stringTwo。
String stringOne = "JAVA";
String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE";
我可以很容易地找到Java是否在第二个字符串中(它是),我将如何索引它的开始和结束位置?我想初始化整数变量中的开始和结束位置:begPos = 14
和endPos = 18
。我会用什么方法来做这件事?
与此相反,但我还有第三个字符串:
String stringThree = " ";
这是一堆空白。我想根据以前获得的位置把“JAVA”放在那里。我可以用字符串的其他部分替换字符串的部分,但我不知道如何替换特定的位置。最终结果应该是:
String stringThree = " JAVA ";
有什么想法吗?
答案 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)
将子字符串的索引返回到str
和str.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();