A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Alexander 中级黑马   /  2014-3-4 11:46  /  834 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题是:从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)
我想这题要用到ASCII表,然后进行加减运算,得出对应的大(小)写,不过具体怎么实现呢?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
可以这样实现:public class convert{ private static final string NULL = null; public static void main(String[] args){ String a="HELLO guy"; int x=a.length();//x中存的是字符串的长度 String m=""; for(int i=0;i<x;i++)//对字符串里的字母进行遍历,逐个转  换  {if(a.charAt(i)>='a' && a.charAt(i)<='z')    m=m+(char)(a.charAt(i)-32);  else if(a.charAt(i)>='A' && a.charAt(i)<='Z')   m=m+(char)(a.charAt(i)+32);  else      m=m+(char)(a.charAt(i));  }     System.out.println(m); }  }

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
小写字母全部转换成大写字母就是对应ASCII码减32,

import   java.io.*;
public class Exec5_1
{
public   static   void   main(String[]   args)
{
try
{
System.out.println("请输入字符串:");
BufferedReader   br=new   BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
char a[]=s.toCharArray();
for(int i=0;i<a.length;i++)
{
if(Character.isLowerCase(a[i]))//这是小写字母转换成大写字母
{
a[i]-=32;//出问题的地方
}
if(Character.isUpperCase(a[i]))//这是大写字母转换成小写字母
{
a[i]+=32;       
}
}
String str=new String(a);
System.out.println(str);
}
catch(IOException   e)
{
e.printStackTrace();
}
}
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0
给你两种方法:
  1. public class Word_Change
  2. {
  3.         public static String wordChange_1(String line)//第一种转换方法
  4.         {
  5.                 char[] ch = line.toCharArray();
  6.                 StringBuilder sb = new StringBuilder();
  7.                 for(int i =0;i<ch.length;i++)
  8.                 {
  9.                         if(ch[i]>='A'&&ch[i]<='Z')
  10.                         {
  11.                                 ch[i]+=32;
  12.                                 sb.append(ch[i]);
  13.                         }
  14.                         else if(ch[i]>='a'&&ch[i]<='z')
  15.                         {
  16.                                 ch[i]-=32;
  17.                                 sb.append(ch[i]);
  18.                         }
  19.                         else
  20.                                 sb.append(ch[i]);
  21.                 }
  22.                 return sb.toString();
  23.         }
  24.        
  25.         public static String wordChange_2(String line)//第二种转换方法
  26.         {
  27.                 char[] c = line.toCharArray();
  28.                 StringBuffer sb = new StringBuffer();
  29.                  for(int i=0;i<c.length;i++)
  30.                          if(c[i]>=97)
  31.                                  sb.append((c[i]+"").toUpperCase());
  32.                          else
  33.                                  sb.append((c[i]+"").toLowerCase());
  34.                  return sb.toString();
  35.         }
  36. public static void main(String[] args)
  37. {
  38.          StringBuffer sb = new StringBuffer();
  39.          String s = "i LOVE cHINA!";
  40.          
  41.          System.out.println("wordChange_1改变前:"+s);
  42.          System.out.println("wordChange_1改变后:"+wordChange_1(s));
  43.          
  44.          System.out.println("\nwordChange_2改变前:"+s);
  45.          System.out.println("wordChange_2改变后:"+wordChange_2(s));
  46.    }
  47. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马