日期:2014-05-20  浏览次数:20793 次

字符串替换字符求教
一个字符串我想领指定位置的字符变为大写,要怎样做?具体是什么字符不知道,只知道要第几个字符传成它本身的大写。

------解决方案--------------------
是我的话会把那个指定位置的字符substring提出来比如赋给String a
然后Integer.parseInt(a);
加上小写和大写的ascii差值
再转成字符
------解决方案--------------------
public String upperCase(String str, int pos) {
return str.substr(0, pos) + str.substr(pos, pos+1).toUpperCase() + str.substr(pos+1);
}
------解决方案--------------------
Java code

public class UpperCase {

    public static void main(String[] args) {

        System.out.println(getTheUpperCase("good", 0));

    }
    static String getTheUpperCase(String src, int pos)
    {
        if(pos>=src.length())
            throw new RuntimeException("指定的位置不合法!");
        
        StringBuilder sb = new StringBuilder(src);
        sb.setCharAt(pos, Character.toUpperCase(src.charAt(pos)));
        return sb.toString();
    }
}

------解决方案--------------------
字符位置从1开始表示,返回null表示传入的参数有误
Java code

    public static String upperCaseString(String str,int pos)
    {
        if(pos < 1 || pos > str.length() || null == str | "".equals(str)) return null;
        char[] strChars = str.toCharArray();
        strChars[pos-1] = Character.toUpperCase(strChars[pos-1]);
        return String.valueOf(strChars);
    }

------解决方案--------------------
public static String upperCaseString(String str,int pos)
{
if(pos < 1 || pos > str.length() || null == str | "".equals(str)) return null;
char[] strChars = str.toCharArray();
strChars[pos-1] = Character.toUpperCase(strChars[pos-1]);
return String.valueOf(strChars);
}