黑马程序员技术交流社区

标题: 关于java String类的编程案例 大小写互转 会的进 [打印本页]

作者: 孙佳奇    时间: 2014-9-1 13:15
标题: 关于java String类的编程案例 大小写互转 会的进
题目:从键盘接收一个字符串,对字符串的字母进行大小写互转
作者: 家进    时间: 2014-9-1 13:15
import java.util.Scanner;

class  Test5

{
        public static void main(String[] args)
        {
                //从键盘接收一个字符串
                System.out.println("please input String:");
                Scanner scn  = new Scanner(System.in);
               
                //调用大小写互转的方法,返回后输出
                String s = CharTool.toChar(scn.next());
               
                scn.close();
               
                System.out.println(s);
        }
}

class CharTool
{
        public static String toChar(String stu)
        {
                StringBuffer sb = new StringBuffer();

                char[] ch = stu.toCharArray();
                for (int i  =0 ;i<=ch.length-1 ;i++)
                {
                        if (ch[i]>=65 && ch[i]<=90)
                        {
                                sb.append((char)(ch[i]+32));
                        }
                        else if (ch[i]>=97 && ch[i]<=122)
                        {
                                sb.append((char)(ch[i]-32));
                        }
                        else
                        {
                        System.out.println("error");
                        break;
                        }
                }
                return sb.toString();
        }
}
作者: 孤守星空    时间: 2014-9-1 13:33
BufferedReader bufr = new BufferedReader(new InputStreamRreader(System.in))
String line = null;
while((line=bufr.readLine())!=null){
     if(line.equals("end"))
         break;
    System.out.println(line.toUpperCase);
}
bufr.close();
希望没写错

作者: 孤守星空    时间: 2014-9-1 14:21
曲解题意了。不会·······
作者: 左脑想你    时间: 2014-9-1 17:28
public class LowUp {
        public static void main(String[] args) throws IOException {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                String str = br.readLine();
                System.out.println(str);
                char[] arr = str.toCharArray();
                str ="";
                for (int i = 0; i < arr.length; i++) {
                        if (arr[i]>=97&&arr[i]<=122) {
                                arr[i] = (char)( arr[i]-32);
                        }else if (arr[i]>=65&&arr[i]<=90) {
                                arr[i] = (char)( arr[i]+32);
                        }
                        str+=arr[i];
                }
                System.out.println(str);
        }
}

作者: 丁夏宁    时间: 2014-9-1 22:34
public static String exChange(String str) {
//        定义一个StringBuffer接收转换换句话说结果
                StringBuffer sb = new StringBuffer();
                //判断字符是否为空
                if (str != null) {
//                        for循环使用charAt()方法把字符串的每个字符遍历出来
                        for (int i = 0; i < str.length(); i++) {
                                char c = str.charAt(i);
//                                判断是否是小写
                                if (Character.isUpperCase(c)) {
//                                        如果是小写就转换成大写并加入到StringBuffer中
                                        sb.append(Character.toLowerCase(c));
//                                        判断是否是大写
                                } else if (Character.isLowerCase(c)) {
//                                        如果是大写就转换成小写并加入到StringBuffer中
                                        sb.append(Character.toUpperCase(c));
                                }
                        }
                }
//                返回转换后换句话说字符串
                return sb.toString();
作者: 孙佳奇    时间: 2014-9-2 11:48
你们回答的都不对啊,是键盘录入一个字符串 ,将录入的字符串中的大小写字母互转,就是输入的大写变小写,输入的小写变大写
作者: supertoy    时间: 2014-9-3 20:28
public class Test {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                String sinput = null;
                while (!"quit".equals(sinput = sc.nextLine())) {
                        System.out.println(swapCase(sinput));
                }
                sc.close();
        }
        /**
         * 大小写互换
         * @param src
         * @return
         */
        public static String swapCase(String src) {
                Matcher matcher = Pattern.compile("([a-z]+)|([A-Z]+)").matcher(src);
                StringBuffer result = new StringBuffer();
                while (matcher.find()) {
                        String s = null;
                        if ((s = matcher.group(1)) != null) {
                                //小写组转大写
                                matcher.appendReplacement(result, s.toUpperCase());
                        } else if ((s = matcher.group(2)) != null) {
                                //大写组转小写
                                matcher.appendReplacement(result, s.toLowerCase());
                        }
                }
                matcher.appendTail(result);
                return result.toString();
        }
}

作者: 卖艺人    时间: 2014-9-3 21:12
/*
        将从键盘输入的字符串中的大小写字母互转
*/

import java.util.Scanner;

class StringUpperLetter
{
        public static void main(String[] args)
        {
                // 创建一个Scanner对象用来从键盘输入
                Scanner input = new Scanner(System.in);

                // 定义一个字符串
                String str = "";                // 存储输入字符串
                String str1 = "";                // 转换后的字符串

                // 提示输入一串字符串
                System.out.print("请输入一串字符串:");
                str = input.nextLine();
               
                if (str!=null){                        // 判断字符串是否为空
                        for (int i = 0; i < str.length(); i++){                        // 遍历字符串
                                char c = str.charAt(i);                                // 提取单个字符
                                if (Character.isUpperCase(c)){                        // 如果是字符为大写则转换为小写并将转化后的字符添加到新的字符串中
                                        str1 += Character.toLowerCase(c);         
                                }
                                else if (Character.isLowerCase(c)){                // 如果是字符为小写则转换为大并将转化后的字符添加到新的字符串中
                                        str1 += Character.toUpperCase(c);
                                }
                                else
                                        str1 += c;                                // 如果为其他字符则照原来的样子添加进新的字符串
                        }
                }
                System.out.println(str1);                                        // 打印转化后的字符串
        }
}

作者: ooEye    时间: 2014-9-4 11:05
  1. package demo;
  2. import java.util.*;
  3. public class Demo {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) throws Exception{
  8.                 // TODO Auto-generated method stub
  9.                 Scanner s = new Scanner(System.in);
  10.                 String line = null;
  11.                 while ((line = s.nextLine()) != "over") {
  12.                         char[] a = line.toCharArray();
  13.                         for (int i = 0; i < a.length; i++) {
  14.                                 if (a[i] >= 'a' && a[i] <= 'z')
  15.                                         a[i] -= 32;
  16.                                 else if (a[i] >='A' && a[i] <= 'Z')
  17.                                         a[i] += 32;
  18.                                 System.out.print(a[i]);
  19.                         }
  20.                        
  21.                 }
  22.         }
  23. }
复制代码

作者: ooEye    时间: 2014-9-4 11:48
重来

  1. package demo;
  2. import java.util.*;
  3. public class Demo {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) throws Exception{
  8.                 // TODO Auto-generated method stub
  9.                 Scanner s = new Scanner(System.in);
  10.                 String line = null;
  11.                 while ((line = s.nextLine()) != null) {
  12.                         char[] a = line.toCharArray();
  13.                         for (int i = 0; i < a.length; i++) {
  14.                                 if (a[i] >= 'a' && a[i] <= 'z')
  15.                                         a[i] -= 32;
  16.                                 else if (a[i] >='A' && a[i] <= 'Z')
  17.                                         a[i] += 32;
  18.                                 System.out.print(a[i]);
  19.                         }                       
  20.                 }
  21.         }
  22. }
复制代码

作者: AlanHand    时间: 2014-9-7 14:23
  1. package HeimaBBS;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.util.regex.Matcher;
  6. import java.util.regex.Pattern;
  7. /**
  8. * 问题说明:将控制台输入的字符转换(输入:abcdABCD)转换为(ABCDabcd)输出
  9. *
  10. */
  11. public class RexTest {
  12.         public static void main(String[] args) throws IOException{
  13.                 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  14.                 String str = bf.readLine();
  15.                 String reg = "[a-zA-Z]";//正则表达是,只取一个英文字符
  16.                 Pattern p = Pattern.compile(reg);//获取正则对象
  17.                 Matcher m = p.matcher(str);//获取匹配器
  18.                
  19.                 while(m.find()){//查找到匹配的字符
  20.                         char[] c = m.group().toCharArray();//获取到一个字符将其转换为只有一个字符的字符数组                       
  21.                         if(c[0]>='a' && c[0]<='z'){//判断大小写
  22.                                 System.out.print(String.valueOf(c[0]).toUpperCase());
  23.                         }else{
  24.                                 System.out.print(String.valueOf(c[0]).toLowerCase());
  25.                         }
  26.                 }
  27.         }
  28. }
复制代码

作者: 古枫    时间: 2014-9-7 16:32
卖艺人 发表于 2014-9-3 21:12
/*
        将从键盘输入的字符串中的大小写字母互转
*/

这个好像可以!
作者: fouraa    时间: 2014-9-18 21:23
import java.util.Scanner;

/*
*
*
*/
public class Test4 {
        public static void main(String[] args) {
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入字符串:");
                String s=sc.nextLine();                 //接受字符串
                char[] ch=s.toCharArray();            //转换成字符数组
                StringBuilder st=new StringBuilder();//创建字符串对象
                for(int x=0;x<ch.length;x++)      //遍历数组并转换
                {
                        if(ch[x]>='a'&& ch[x]<='z')
                        {String ss=Character.toString(ch[x]);
                                st.append(ss.toUpperCase());
                        }else
                        {String ss=Character.toString(ch[x]);
                                st.append(ss.toLowerCase());
                        }
                }
                String s1=new String(st);   //转换成字符串
                System.out.println(s1);   //打印字符串
        }

}

作者: fouraa    时间: 2014-9-18 21:29
import java.util.Scanner;

/*
*
*
*/
public class Test4 {
        public static void main(String[] args) {
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入字符串:");
                String s=sc.nextLine();
                char[] ch=s.toCharArray();
                StringBuilder st=new StringBuilder();
                for(int x=0;x<ch.length;x++)
                {
                        if(ch[x]>='a'&& ch[x]<='z')
                        {String ss=Character.toString(ch[x]);
                                st.append(ss.toUpperCase());
                        }else
                        {String ss=Character.toString(ch[x]);
                                st.append(ss.toLowerCase());
                        }
                }
                String s1=new String(st);
                System.out.println(s1);
        }

}

作者: 霜林醉zhx    时间: 2014-9-22 15:46
  1. package com.itheima;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;

  5. /**
  6. * 第7题:编写程序,从键盘接收一个字符串,
  7. *                 对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。
  8. * @author longchao
  9. */
  10. /*
  11. * 思路:
  12. *         1,分成两个静态方法,一个用于接收键盘录入;一个用于字母大小写互转。
  13. *         2,键盘接收字符串用:BufferedReader(new InputStream(System.in)
  14. *         3,将接收到了字符串存为字符串数组,对字符数组进行大小写转换并转成字符串输出
  15. * */
  16. public class Test7 {
  17.         public static void main(String[] args) {
  18. //                trans("sdKLLJKiojLKJijoLKJ7$#%^87klj0?334..");
  19.                 try {
  20.                         //调用接收键盘录入方法,并把接收的数组传给trans进行大小写转换
  21.                         trans(keyboardIn());
  22.                 } catch (IOException e) {
  23.                         e.printStackTrace();
  24.                 }
  25.         }
  26.        
  27.         //字母大小写转换方法
  28.         public static void trans(String str){
  29.                 System.out.println("您输入的数据为:"+str);
  30.                
  31.                 //将字符串变数组
  32.                 char[] chs = str.toCharArray();
  33.                
  34.                 //遍历数组
  35.                 for (int i = 0; i < chs.length; i++) {
  36.                         //如果字符为小写字母,则转为大写字母
  37.                         if(Character.isLowerCase(chs[i])){
  38.                                 chs[i]=Character.toUpperCase(chs[i]);
  39.                        
  40.                         //如果字符为大写字母,则转为小写字母       
  41.                         }else if(Character.isUpperCase(chs[i])){
  42.                                 chs[i]=Character.toLowerCase(chs[i]);
  43.                         }
  44.                 }
  45.                
  46.                 //将转换后的字符重新封装成字符串
  47.                 String s = new String(chs);
  48.                
  49.                 System.out.println("转换后的数据为:"+s);
  50.                
  51.         }
  52.        
  53.        
  54.         //接收键盘录入方法
  55.         public static String keyboardIn() throws IOException{
  56.                 System.out.println("请输入数据,将为您进行字母大小写转换,如果想退出此程序,请输入:over");
  57.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  58.                
  59.                 for(String line = null;(line=bufr.readLine())!=null;){
  60.                         if("over".equals(line))
  61.                                 break;
  62.                         else
  63.                                 return line;
  64.                 }
  65.                 return "";
  66.         }

  67. }
复制代码

作者: 斗神_    时间: 2014-10-14 18:21
  1. import java.util.*;
  2. class  TransformDemo
  3. {
  4.         //需求:将键盘录入的字符串大小写互转。
  5.         public static void main(String[] args)
  6.         {
  7.                 System.out.println(transStr());
  8.         }
  9.         public static String transStr()
  10.         {
  11.                 //获取键盘录入的字符串
  12.                 Scanner sc=new Scanner(System.in);
  13.                 String str=sc.next();
  14.                 //定义正则表达式,要求字符串必须全是字母
  15.                 String reg="[a-zA-Z]+";
  16.                 char[] ch=str.toCharArray();
  17.                 //如果字符串满足reg,将字符串转换为字符数组
  18.                 if(str.matches(reg))
  19.                         ch=str.toCharArray();
  20.                 else
  21.                 {
  22.                         return "请输入只带大小写字母的字符串";
  23.                 }
  24.                 //遍历满足条件后,String转换成的字符数组
  25.                 for(int i=0;i<ch.length;i++)
  26.                 {
  27.                         //判断大小写,以及大小写转换
  28.                         if(65<=ch[i] && ch[i]<=90)
  29.                                 ch[i]=(char)(ch[i]+32);
  30.                         else
  31.                                 ch[i]=(char)(ch[i]-32);
  32.                 }
  33.                 //将字符数组封装成字符串对象
  34.                 str=new String(ch);
  35.                 return str;

  36.         }
  37. }
复制代码

作者: 没劲睡觉    时间: 2014-10-17 21:50
是不显示你键盘输入的内容直接显示转换后的结果吧
作者: 无知的xiaopihai    时间: 2014-10-21 22:00
来转转。。。。。看看。。。。
作者: 未来就在那    时间: 2014-10-26 11:10
来转转。。。。。
作者: 未来就在那    时间: 2014-10-26 12:15
来转转。。。。。

作者: Strivespring    时间: 2014-11-4 18:22
  1. public static String exChange() {
  2.                 //创建scanner对象
  3.                 Scanner s = new Scanner(System.in);
  4.                 // 定义一个StringBuffer接收转换换句话说结果
  5.                 while (true) {
  6.                         //读取键盘输入内容
  7.                         String str = s.nextLine();

  8.                         StringBuffer sb = new StringBuffer();
  9.                         // 判断字符是否为空

  10.                         // for循环使用charAt()方法把字符串的每个字符遍历出来
  11.                         for (int i = 0; i < str.length(); i++) {
  12.                                 char c = str.charAt(i);
  13.                                 // 判断是否是小写
  14.                                 if (Character.isUpperCase(c)) {
  15.                                         // 如果是小写就转换成大写并加入到StringBuffer中
  16.                                         sb.append(Character.toLowerCase(c));
  17.                                         // 判断是否是大写
  18.                                 } else if (Character.isLowerCase(c)) {
  19.                                         // 如果是大写就转换成小写并加入到StringBuffer中
  20.                                         sb.append(Character.toUpperCase(c));
  21.                                 }
  22.                         }

  23.                         // 返回转换后换句话说字符串
  24.                         System.out.println(sb.toString());
  25.                 }

  26.         }
复制代码

作者: Strivespring    时间: 2014-11-4 18:38
本帖最后由 Strivespring 于 2014-11-4 18:39 编辑
  1. public static void Test(){
  2.                 Scanner s = new Scanner(System.in);
  3.                 String str = s.nextLine();
  4. //      定义一个StringBuffer接收转换换句话说结果
  5.         StringBuffer sb = new StringBuffer();
  6.         //判断字符是否为空
  7.         if (str != null) {
  8. //                for循环使用charAt()方法把字符串的每个字符遍历出来
  9.                 for (int i = 0; i < str.length(); i++) {
  10.                         char c = str.charAt(i);
  11. //                        判断是否是小写
  12.                         if (Character.isUpperCase(c)) {
  13. //                                如果是小写就转换成大写并加入到StringBuffer中
  14.                                 sb.append(Character.toLowerCase(c));
  15. //                                判断是否是大写
  16.                         } else if (Character.isLowerCase(c)) {
  17. //                                如果是大写就转换成小写并加入到StringBuffer中
  18.                                 sb.append(Character.toUpperCase(c));
  19.                         }
  20.                 }
  21.         }
  22. //        输出转换后换句话说字符串
  23.         System.out.println(sb.toString());
  24.         }
复制代码

作者: 吕静然    时间: 2014-11-13 13:38
        public static void transLetter()
        {
                InputStream in=System.in;
                BufferedReader buf=null;
                String s=null;
                try
                {
                        buf=new BufferedReader(new InputStreamReader(in));
                        while((s=buf.readLine())!=null)
                        {
                                char[]ch=s.toCharArray();
                                for(int x=0;x<ch.length;x++)
                                {
                                        if(ch[x]>='a'&&ch[x]<='z')
                                                ch[x]=(char) (ch[x]-32);
                                        else
                                                ch[x]=(char) (ch[x]+32);
                                }
                                for(char c:ch)
                                {
                                        System.out.print(c);
                                }
                                System.out.println();
                        }
                       
                }
                catch(IOException e)
                {
                        throw new RuntimeException();
                }
                finally
                {
                        try
                        {
                                if(buf!=null)
                                        buf.close();
                        }
                        catch(IOException e)
                        {
                                throw new RuntimeException();
                        }
                       
                }
               
        }

作者: jdedffjef83j    时间: 2014-11-30 20:39
看看。。。。。。。。。。。。
作者: 時間_|_的灰    时间: 2015-1-15 01:44
package com.itheima;

import java.util.Scanner;

/**
*  编写程序,从键盘接收一个字符串,
*  对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。
*
* */
public class Test5 {
        public static void main(String[] args){
                System.out.println("请输入字符串:");
                Scanner sc =new Scanner(System.in);
                String str =sc.nextLine();
               
                caseConversion(str);
        }
       
        /**
         * 字符串大小写转换
         * */
        private static void caseConversion(String str) {  
        //将输入的字符串先转换成字符数组
                char[] ch =str.toCharArray();
                for(int i=0;i<ch.length;i++){
                        //遍历取出每个字符与大写字母的Hash值相比较,看是否为大写字母
                        if(ch[i]>=65 && ch[i]<=90){
                                //大写字母与其相对应的小写字母Hash值相差32
                                ch[i]+=32;
                        }else if(ch[i]>=97 && ch[i]<=122){
                                ch[i]-=32;
                        }
                        }
                //将转换后的字符数组,转换成字符串
                String s1=new String(ch, 0, ch.length);
                System.out.println(s1);
                }

}

作者: 走失的葫芦    时间: 2015-4-4 16:07
  1. package com.itheima;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;

  5. /**
  6. * 题目:
  7. * 7、编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。
  8. *
  9. * 思路:
  10. *1、将键盘作为源来获得一个字符串。
  11. *2、将控制台作为目的来展示互转后的字符串。
  12. *3、在过程中,对大写字母和小写字母做出相应的处理。
  13. *
  14. *步骤:
  15. *1、键盘录入一系列的大写和小写子母。利用缓冲区来完成。
  16. *2、对录入子母进行判断,将大写转成小写,小写转成大写,实验得到大小写字母的差值:32。
  17. *3、将转换后的字符存入缓冲区,并打印,打印结束后,清空缓冲区。
  18. *
  19. */
  20. public class test {

  21.         public static void main(String[] args) {
  22.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  23.                 StringBuilder sb = new StringBuilder();                                        //定义缓冲区。
  24.                 String line = null;                                                                                //定义字符串line。
  25.                 try {                                                                                                        //对异常进行try catch 处理。
  26.                         while ((line=bufr.readLine())!=null) {
  27.                                 char[] chs = line.toCharArray();                                //将字符串转成数组。
  28.                                 int count = 0;                                                                        //定义计数器,方便清空缓冲区。
  29.                                 for(char ch : chs){                                                                //对数组进行for循环。
  30.                                         if (ch<='z'&&ch>='a') {                                                //判断是否满足条件。
  31.                                                 char ch1 = (char) ((char)ch-32);                //实验得来大小写差值,并进行转换。
  32.                                                 sb.append(ch1);                                                        //将得到的字符存入到缓冲区。
  33.                                                 count++;                                                                //计数器自增。
  34.                                         }
  35.                                         else if (ch<='Z'&&ch>='A') {
  36.                                                 char ch1 = (char) ((char)ch+32);
  37.                                                 sb.append(ch1);
  38.                                                 count++;
  39.                                         }
  40.                                         else {                                                                                //如果不是字符,则继续循环。
  41.                                                 continue;
  42.                                         }
  43.                                 }
  44.                                 if("end".equals(line)){                                                        //定义结束标志。
  45.                                         break;
  46.                                 }
  47.                                 System.out.println(sb);                                                        //打印转换后的字符串。
  48.                                 sb.delete(0, count);                                                        //清空缓冲区。
  49.                         }
  50.                 } catch (IOException e) {                                                                //异常处理。
  51.                         throw new RuntimeException("字符转换错误");
  52.                 }
  53.         }

  54. }
复制代码

作者: 光头强    时间: 2015-5-26 16:56
ni xuede zm 样了




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