如何在Java中的String中设置特定位置?

时间:2011-06-08 08:28:06

标签: java string

我有一个名为str的字符串。

str = "hi john";

现在我想将j char设置为g。我怎么能这样做?

8 个答案:

答案 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);