黑马程序员技术交流社区

标题: 遇到一个关于大小写转换的问题 [打印本页]

作者: 杨希    时间: 2014-3-17 18:22
标题: 遇到一个关于大小写转换的问题
本帖最后由 杨希 于 2014-3-17 18:46 编辑

之前跟毕姥爷的视频学习,学到键盘输入这块的问题,忽然想到之前遇到的一个题目,在键盘中输入大小写,在输出中,输入中的小写变为大写,大写变为小写,我现在只会把小写全部变为大写,请大神帮帮忙
  1. import  java.io.*;
  2. class TransStreamDemo
  3. {
  4. public static void main(String args[]) throws IOException
  5. {

  6.     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   //读取流转换
  7.     BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));   //输出流转换
  8.     String line1 = null;
  9.     while((line1 = br.readLine())!=null)
  10.       {   
  11.           if("over".equals(line1))   //遇到over停止
  12.           break;
  13.           bw.write(line1.toUpperCase());   //转成大写
  14.           bw.newLine();
  15.           bw.flush();     
  16.        }
  17.     bw.close();
  18.   }
  19. }
复制代码











作者: 张贺    时间: 2014-3-17 18:46
  1. import java.io.*;
  2. class TransStreamDemo
  3. {
  4.         public static void main(String args[]) throws IOException
  5.         {
  6.                  //读取转换流
  7.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  8.                 //写入转换流
  9.                 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
  10.                 String line = null;
  11.                 while((line = br.readLine())!=null)
  12.                 {
  13.                         if("over".equals(line))
  14.                         {
  15.                                 System.exit(1);
  16.                         }
  17.                         System.out.println("转换前:"+line);
  18.                         System.out.println("转换后:"+transf(line));
  19.                        
  20.                 }
  21.         }
  22.         public static String transf(String str)
  23.         {
  24.                 char[] ch=str.toCharArray();
  25.                 for(int i=0;i<ch.length;i++)
  26.                 {
  27.                         if(ch[i]>=65&&ch[i]<=90)
  28.                         {
  29.                                 ch[i]+=32;
  30.                                 continue;
  31.                         }
  32.                         if(ch[i]>=97&&ch[i]<=122)
  33.                         {
  34.                                 ch[i]-=32;
  35.                                 continue;
  36.                         }
  37.                 }
  38.                 return new String(ch,0,ch.length);
  39.         }
  40. }
复制代码

作者: 枫露    时间: 2014-3-18 22:46
  1. String s="ABCDE";
  2.                 System.out.println(s.toLowerCase());
复制代码

1.png (2.45 KB, 下载次数: 36)

1.png

作者: 路西法    时间: 2014-3-19 08:00
楼主的 问的意思是“如何让字符串自己判断自己是大写还是小写  然后再自己转换的对吧”

其实只要让字符串本身与他的大写对比,如果相等那么他就是大写,然后把它小写输出,反之则是小写,得把它大写输出import java.io.*;

public class Test7
{     
      public static void main(String[] args) throws IOException
      {
           BufferedReader bufr =
                                new BufferedReader(new InputStreamReader(System.in));//键盘输入
                   System.out.print("请输入字母");   
           String line= bufr.readLine();  //先存放一下输入的文字
           String s = convertString(line);   //line为输入文字,S为转换后的文字。
           System.out.println(s);
       }

      public static String convertString(String str)
          {
              String upStr = str.toUpperCase();   
              String lowStr = str.toLowerCase();   
              StringBuffer buf = new StringBuffer(str.length());   //定义一个缓冲区用来临时存放装换后的数据
                         
                                          for(int x=0;x<str.length();x++)
                                          {   
                                                        if(str.charAt(x)==upStr.charAt(x))//让一个字母与他的大写字母比较,如果相同那么这个字母就是大写 ,
                                                                                                                                //下面就需要小写,不相等则需要
                                                                 buf.append(lowStr.charAt(x)); //小写  
                                                         
                                                        else
                                                       
                                                                buf.append(upStr.charAt(x));  //大写
                                                               
                                           }   
                                           return   buf.toString();   //返回字符串
                               
                  }



}




作者: 13556793092    时间: 2014-5-17 13:51
你运气好  昨天刚做的题 贴给你

public class Test8 {
        public static void main(String[] args) throws Exception
        {
                System.out.println("请输入字符串:");
                //读取键盘录入
                BufferedReader in
                   = new BufferedReader(new InputStreamReader(System.in));
                //将录入数据转成字符串
                String str=in.readLine();
                byte[] buf=str.getBytes();
                //通过遍历的方式判断每一位是否字母,是的话,通过+-32来切换大小写
                for (int x = 0;x<buf.length;x++)
        {               
               
                if (buf[x]>=65 && buf[x]<=90)
                {
                    buf[x] = (byte)(buf[x]+32);
                }
                else if(buf[x]>=97 && buf[x]<=122)
                {
                        buf[x] = (byte)(buf[x]-32);
                }
        }
                //将字节数组转换成字符串,输出
                str = new String(buf);
        System.out.println(str);
        in.close();
        }
}




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