黑马程序员技术交流社区

标题: 求助 [打印本页]

作者: 微笑=.一瞬间    时间: 2014-4-7 22:50
标题: 求助
学长们 本人写了个 程序 。程序需求是 从键盘输入一字符串 把字符串中的小写字符转换成大写,大写转换成小写:程序代码如下 那血好心的学长或者学姐帮忙优化下程序。谢谢

import java.util.Scanner;

public class Text6 {
        public static void main(String[] args) {
                System.out.println("请输入一字符串");
                Scanner scanner=new Scanner(System.in);
                String s=scanner.nextLine();
                System.out.println("转换后的字符串是:");
                char[] ss=translate(s);//将转化后的数组存放到ss中
                putArr(ss);//输出转换后的数组
        }
        /**
          translate(String s)方法将键盘上输入的字符串s
         */
        public static char[] translate(String s){
                char[] ch=s.toCharArray();
                for(int i=0;i<ch.length;i++){
                        if(ch[i]==32|| isShu(ch[i])){
                                //如果ch[i]是空格或者是数字字符将continue语句跳出本次循环
                                continue;
                        }
                        if(ch[i]<97){
                                ch[i]=(char) (ch[i]+32);
                        }
                        else if(ch[i]>=97){
                                ch[i]=(char) (ch[i]-32);
                        }       
                }
                return ch;
        }
        /*
          isShu(char a)方法是用来判断a是否是0-9的数字字符串
         */
        public static boolean isShu(char a){
                if(a=='0'||a=='1'||a=='2'||a=='3'||a=='4'||a=='5'||a=='6'||a=='7'||a=='8'||a=='9')
                        return true;
                return false;
        }
        /*
                 putArr函数用于输出数组中的元素
         */
        public static void putArr(char[] ss){
                for (int m = 0; m< ss.length; m++) {
                        System.out.print(ss[m]);
                }
        }
       

}

作者: 林发明    时间: 2014-4-8 08:01
我写的分享一下 ,没有判断数字字符,
  1. public static String transStr(String str){
  2.                 //将字符串转成字符数组,方便进行遍历
  3.                 char[] chars = str.toCharArray();
  4.                 //遍历这个数组判断每一个字符是大写还是小写
  5.                 for (int i = 0; i < chars.length; i++) {
  6.                         //是小写字符则转成大写,再存入到原来的字符数组中
  7.                         if(chars[i]>='a' && chars[i]<='z'){
  8.                                 chars[i] = Character.toUpperCase(chars[i]);
  9.                         }
  10.                         //大写字符转成小写字符
  11.                         else if(chars[i]>='A' && chars[i]<='Z'){
  12.                                 chars[i] = Character.toLowerCase(chars[i]);
  13.                         }
  14.                 }
  15.                 return new String(chars); //将遍历完并且转换完成的数组变成字符串返回
  16.         }       
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2