黑马程序员技术交流社区

标题: 写一个方法,实现字符串大小写互转 [打印本页]

作者: 耿明明    时间: 2013-6-5 16:06
标题: 写一个方法,实现字符串大小写互转
本帖最后由 耿明明 于 2013-6-5 16:51 编辑

如题,假设这个字符串为"iThEImA"转为"ItHeiMa"
方法越简练越好!!
最好注释,以及解题思路.

作者: 曾大鹏    时间: 2013-6-5 16:21
本帖最后由 曾大鹏 于 2013-6-5 16:26 编辑

额 根据ascall码值啊 'A'是65 ‘a' 是97 'a' 跟'A' 差32
判断一下就好了啊。。
  1. static void Main(string[] args)
  2.         {
  3.             string str="iThEImA";
  4.             str = ChangeToStr(str);
  5.             Console.WriteLine(str);
  6.         }

  7.         private static string ChangeToStr(string str)
  8.         {
  9.             char[] a = str.ToCharArray();
  10.             for (int i = 0; i < a.Length; i++)
  11.             {
  12.                 if (a[i] >= 'a' && a[i] <= 'z')
  13.                     a[i] = (char)(a[i] -32);
  14.                 else
  15.                     a[i] = (char)(a[i] + 32);
  16.             }
  17.             return new string(a);
  18.         }
复制代码
C#写的 可以参考一下

作者: 神之梦    时间: 2013-6-5 16:36
本帖最后由 神之梦 于 2013-6-5 16:37 编辑

看下这个可以么?楼上下手比我快!{:soso_e117:}
  1. /*
  2. 需求:假设这个字符串为"iThEImA"转为"ItHeiMa"
  3. 思路:1、将字符串转换成字符数组
  4.           2、遍历数组进行判断,如果是大写就转换为小写,如果是小写就转换为大写
  5.           3、将字符数组转换为字符串


  6. */
  7. class  Test
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 String s="iThEImA";
  12.                 System.out.println(upLowSwap(s));
  13.         }
  14.         
  15.         //字符串大小写互转方法
  16.         public static String upLowSwap(String str)
  17.         {
  18.                 //转换为字符数组
  19.                 char[] c=str.toCharArray();

  20.                 for (int x=0;x<c.length ;x++ )
  21.                 {
  22.                         if(c[x]>='a'&& c[x]<='z')
  23.                         {
  24.                                 c[x]=(char)(c[x]-32);//因为大小写字母在ASCII码中相差32,所以只有加或者减32就可以了
  25.                         }
  26.                         //这里没有其他字符,就直接写else了
  27.                         else
  28.                         {
  29.                                 c[x]=(char)(c[x]+32);
  30.                         }
  31.                 }
  32.                 return new String(c);
  33.         }
  34. }
复制代码

作者: 刘晓    时间: 2013-6-5 16:40
本帖最后由 刘晓 于 2013-6-5 16:44 编辑
  1. public static void main (String [] args)
  2.         {
  3.            char[] arr={'i','T','h','E','I','m','A'};
  4.                for(int i=0;i<arr.length;i++)
  5.                {
  6.                        if (arr[i] > 97)//和97比较,大于97说明是小写,小于97是大写。
  7.                        {
  8.                               arr[i]=(char)(arr[i]-32); //大写和小写之间错32.小写减32是大写
  9.                        }
  10.                        else
  11.                        {
  12.                                arr[i]=(char)(arr[i]+32); //大写加32是小写
  13.                        }
  14.                }
  15.                     for(int i=0;i<arr.length;i++)
  16.                     {
  17.                             System.out.print(arr[i]);
  18.                     }
  19.        }
复制代码

作者: 小权    时间: 2013-6-5 16:46
  1. public class test {
  2.         public static void main(String[] args)
  3.         {
  4.                 String str="iThEImA";//原字符串
  5.                
  6.                 char[] array = str.toCharArray();//转化成字符串数组
  7.                
  8.                 for(int i=0;i<array.length;i++)
  9.                 {
  10.                         if(array[i]>=(int)'A' && array[i]<=(int)'Z')
  11.                                 array[i]=(char)(array[i]+32);
  12.                         else if(array[i]>=(int)'a' && array[i]<= (int)'z')
  13.                                 array[i]=(char)(array[i]-32);
  14.                 }
  15.                
  16.                 String result = String.valueOf(array);
  17.                 System.out.println(result);
  18.         }
  19. }
复制代码

作者: 金辉    时间: 2013-6-5 16:58
  1. public static void main(String[] args) {
  2.                 StringBuffer sb = new StringBuffer();
  3.                 String s = "iThEImA";
  4.                 System.out.println("改变前:" + s);               
  5.                 char[] c = s.toCharArray();//将字符串转为数组
  6.                 for (int i = 0; i < c.length; i++) {//遍历数组,如果原来是大写,转为小写存储到sb中
  7.                         if (c[i] >= 97) {
  8.                                 sb.append((c[i] + "").toUpperCase());
  9.                         } else {
  10.                                 sb.append((c[i] + "").toLowerCase());
  11.                         }
  12.                 }
  13.                 System.out.print("改变后:");
  14.                 System.out.println(sb.toString());//输出转变后的结果
  15.         }
复制代码





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