我有一个名为str的字符串。
str = "hi john";
现在我想将j
char设置为g
。我怎么能这样做?
答案 0 :(得分:5)
您不能直接修改String
,但可以使用StringBuilder:
str = "hi john";
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(3,'g');
str = sb.toString();
..或将其转换为char[]
并返回
str = "hi john";
char[] chars = str.toCharArray();
chars[3] = 'g';
str = new String(chars);
答案 1 :(得分:3)
两种方式:
一个。这将使用“j
”替换所有“g
”的出现。
String str1 = "hi john";
System.out.println(str1); // prints - hi john
String str2 = str1.replace('j', 'g');
System.out.println(str2); // prints - hi gohn
湾如果您只想更改字符串中一个位置的“j
”字符,您可能需要这样做。
String str4 = replaceCharAt("hi john", 3,'g');
public static String replaceCharAt(String str1, int pos, char c) {
StringBuffer buf = new StringBuffer(str1);
buf.setCharAt(pos,c);
return buf.toString( );
}
// Here : pos = 3, char = 'g' and str1 = "hi john"
答案 2 :(得分:2)
str = str.replace('j', 'g');
应该为你做。
答案 3 :(得分:1)
str.replace('j','g');
正如这个java api所示 http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replace(char,char)
答案 4 :(得分:1)
String str ="hi john"
syso(str.replace('j','g'));
输出将是 hi gohn
答案 5 :(得分:0)
您可以使用子字符串。请看:http://download.oracle.com/javase/tutorial/java/data/manipstrings.html
答案 6 :(得分:0)
您可以使用以下内容:
public static String replace(String _text, String _searchStr, String _replacementStr) {
// String buffer to store str
StringBuffer sb = new StringBuffer();
// Search for search
int searchStringPos = _text.indexOf(_searchStr);
int startPos = 0;
int searchStringLength = _searchStr.length();
// Iterate to add string
while (searchStringPos != -1) {
sb.append(_text.substring(startPos, searchStringPos)).append(_replacementStr);
startPos = searchStringPos + searchStringLength;
searchStringPos = _text.indexOf(_searchStr, startPos);
}
// Create string
sb.append(_text.substring(startPos,_text.length()));
return sb.toString();
}
public static int indexOf(String sb, String str, int start){
int index = -1;
if((start>=sb.length() || start<-1) || str.length()<=0) return index;
char[] tofind = str.toCharArray();
outer: for(;start<sb.length(); start++){
char c = sb.charAt(start);
if(c==tofind[0]){
if(1==tofind.length) return start;
inner: for(int i = 1; i<tofind.length;i++){ // start on the 2nd character
char find = tofind[i];
int currentSourceIndex = start+i;
if(currentSourceIndex<sb.length()){
char source = sb.charAt(start+i);
if(find==source){
if(i==tofind.length-1){
return start;
}
continue inner;
} else {
start++;
continue outer;
}
} else {
return -1;
}
}
}
}
return index;
}
答案 7 :(得分:0)
String s;
int i = str.indexOf('j');
s = str.subString(0, i) + 'g' + str.subString(i + 1, str.length() - 1);