public class Change {

public static void main(String[] args) {

public String str = "abc2AF9+-=";
//public void Change() {
//str = "abc2AF9+-="
//}
StringBuffer sb = new StringBuffer();

for(int i = 0;i<length();i++) {
char ch = str.length(i);
if(Character.isDigit(ch)) {
continue;
}
if (Character.isLowerCase(ch) ) {
sb.append(Character.toUpperCase(ch));


if(Character.isUpperCase(ch)) {
sb.append(Character.toLowerCase(ch));

}else {
ch = "*";
}



}
System.out.println(str);
System.out.println(ch); }
}

解决方案 »

  1.   

    public class Change {
        public static void main(String[] args) {        String str = "abc2AF9+-=";
            // public void Change() {
            // str = "abc2AF9+-="
            // }
            StringBuffer sb = new StringBuffer();        for (int i = 0; i < str.length(); i++) {
                char ch = str.charAt(i);
                if (Character.isDigit(ch)) {
                    sb.append(Character.toUpperCase(ch));
                } else if (Character.isLowerCase(ch)) {
                    sb.append(Character.toUpperCase(ch));            } else if (Character.isUpperCase(ch)) {
                    sb.append(Character.toLowerCase(ch));            } else {
                    sb.append("*");            }        }
            System.out.println(str);
            System.out.println(sb);    }
    }这样就OK了
      

  2.   

    得到字符串中的单个字符用  char ch = str.charAt(i);
      

  3.   

    思路没错,但感觉代码略显哆嗦: public static void main(String[] args) {
    String str = "abc2AF9+-=";
    StringBuilder sb = new StringBuilder(); for (char ch : str.toCharArray())
    sb.append((ch >= '0' && ch <= '9') ? ch
    : (ch >= 'A' && ch <= 'Z') ? (char) (ch + 0x20)
    : (ch >= 'a' && ch <= 'z') ? (char) (ch - 0x20) : "*"); System.out.println(str);
    System.out.println(sb);
    }
      

  4.   


    够简洁 建议你加括号 你这样写对一个新手来说不好看 还不如你弄个switch了 
      

  5.   


    错了  是if  else
      

  6.   

    public class Change {
     
    public static void main(String[] args) {
     
      String str = "abc2AF9+-=";
     //public void Change() {
     //str = "abc2AF9+-="
     //}
    StringBuffer sb = new StringBuffer(); for(int i = 0;i<str.length();i++) {
     char ch = str.charAt(i);
     if(Character.isDigit(ch)) {
     sb.append(ch);
     continue;
     }else
     if (Character.isLowerCase(ch) ) { 
     sb.append(Character.toUpperCase(ch)); }  else
    if(Character.isUpperCase(ch)) {
     sb.append(Character.toLowerCase(ch)); }else {
     sb.append("*");
     }
     
    }
     System.out.println(str);
     System.out.println(sb); }
    }
      

  7.   

    其实错的原因就是他的逻辑没搞清楚而已...应该用if+elseif的  用了if +if
      

  8.   

    package com.dai.csdn;public class Change { public static void main(String[] args) { String str = "abc2AF9+-=";
    // public void Change() {
    // str = "abc2AF9+-="
    // }
    StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) {
    char ch = str.charAt(i);
    if (Character.isDigit(ch)) {
    continue;
    }
    else if (Character.isLowerCase(ch)) {
    sb.append(Character.toUpperCase(ch)); }
    else if (Character.isUpperCase(ch)) {
    sb.append(Character.toLowerCase(ch)); } else {
    //
    }
    }
    System.out.println(str);
    System.out.println(sb);
    }
    }
      

  9.   


    public String autoChange(String source) {
    if (source == null || source.length() == 0)
    return source; char[] charSet = source.toCharArray();

    int dlt = 'a' - 'A';

    //change every char
    for (int i = 0, count = charSet.length; i < count; i++) {
    if (charSet[i] >= 'a' && charSet[i] <= 'z') {
    charSet[i] -= dlt;
    } else if (charSet[i] >= 'A' && charSet[i] <= 'Z') {
    charSet[i] += dlt;
    }
    }
    return String.valueOf(charSet);
    }
    这样也行吧
      

  10.   

    漏了需求,补上: public String autoChange(String source) {
    if (source == null || source.length() == 0)
    return source; char[] charSet = source.toCharArray(); int dlt = 'a' - 'A'; //change every char
    for (int i = 0, count = charSet.length; i < count; i++) {
    if (charSet[i] >= 'a' && charSet[i] <= 'z') {
    charSet[i] -= dlt;
    } else if (charSet[i] >= 'A' && charSet[i] <= 'Z') {
    charSet[i] += dlt;
    } else if (charSet[i] >= '0' && charSet[i] <= '9') {
    } else {
    charSet[i] = '*';
    }
    }
    return String.valueOf(charSet);
    }
      

  11.   


    /**
     * 小写变大写,大写变小写,数字不变,其他的变*号
     * @author jileniao.net
     * @version 1.1
     */
    public class Change { public static void main(String[] args) { String str = "abc2AF9+-=";
    StringBuffer sb = new StringBuffer();
    char ch;
    for(int i = 0; i < str.length(); i++) {
    ch = str.charAt(i);
    if(Character.isDigit(ch)) {
    // 数字
    sb.append(Character.toUpperCase(ch));
    } else if (Character.isLowerCase(ch) ) {
    // 小写转大写
    sb.append(Character.toUpperCase(ch));
    } else if(Character.isUpperCase(ch)) {
    // 大学转小写
    sb.append(Character.toLowerCase(ch));
    } else {
    // 其他转*
    sb.append(Character.toLowerCase('*'));
    }
    }
    // 变换前输出
    System.out.println(str);
    // 变换后输出
    System.out.println(sb);
    }
    }