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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Test4 {

        /**
         * 将字符串首字母变为大写,其余字母变为小写。
         */
        public static void main(String[] args) {
                // 定义字符串
                String str = "aaaNNHGhhgFHggj";
                // 第一步将字符串全部变为小写
                String s = str.toLowerCase();
                // 对字符串转换为字符数组进行遍历并将首字母转换为大写
                char[] arr = s.toCharArray();
                String end = "";
                for (int i = 0; i < arr.length; i++) {
                        if (i == 0) {
                                String d = arr[0] + "";
                                String d1 = d.toUpperCase();
                                end += d1;

                        } else {
                                end += arr[i];
                        }

                }
                System.out.println(end);
        }

}


5 个回复

倒序浏览
拿到一个字符变成大写,截取后面的变小写 。拼接 哦了。
回复 使用道具 举报
方法1::你完全可以先对输入的字符串,截取成单个字符对每一个字符进行匹配大小写,这里使用的是正则匹配。匹配完转换大小写并拼接字符串。就ok了。
方法2:还可以通过得到单个字符的索引值,判断该字符是不是在a_z或者A_Z,然后对它们进行加减32的操作,最后像上面一样拼接字符串。贴一下我的代码。希望对楼主有帮助。
  1. package com.itheima;

  2. import java.util.Scanner;

  3. public class Test6 {

  4.         /**
  5.          * 6、 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转 (大写字母转成小写,小写字母转成大写)。
  6.          */
  7.         public static void main(String[] args) {
  8.                 System.out.println("请输入所要转换的字母或单词!");
  9.                 //定义并初始化键盘读入语句
  10.                 Scanner sc = new Scanner(System.in);
  11.                 //声明字符串接收从键盘读取的字符串
  12.                 String str = sc.nextLine();
  13.                 //调用转换函数
  14.                 str = transverter(str);
  15.                 System.out.println(str);
  16.         }

  17.         public static String transverter(String str) {
  18.                 //定义正则表达式用于匹配所输入的字符串
  19.                 String reg1 = "[a-z]";
  20.                 String reg2 = "[A-Z]";
  21.                 String resu = "";
  22.                 for (int i = 0; i < str.length(); i++) {
  23.                         //截取字符串的单个字符
  24.                         String s= str.substring(i,i+1);
  25.                         //进行匹配操作
  26.                         if (s.matches(reg1)) {
  27.                                 //对s字符转换成大写
  28.                                 s = s.toUpperCase();
  29.                                 //拼接字符串
  30.                                 resu +=s;
  31.                                 //进行匹配操作
  32.                         } else if (s.matches(reg2)) {
  33.                                 //对s字符转换成小写
  34.                                 s = s.toLowerCase();
  35.                                 //拼接字符串
  36.                                 resu +=s;
  37.                         }
  38.                 }
  39.                 return resu;
  40.         }

  41. }
复制代码
回复 使用道具 举报
同意楼上,用正则表达式最快,最简洁
回复 使用道具 举报
public class ReverseString {

        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                // TODO Auto-generated method stub
                InputStream in=System.in;
                int k;
               
                while((k=in.read())!=-1){
                        if(k>='a'&&k<='z')
                        {
                                k-=32;
                                System.out.print((char)k);
                                continue;
                        }
                        if(k>='A'&&k<='Z')
                        {
                                k+=32;
                                System.out.print((char)k);
                                continue;
                        }
                        System.out.print((char)k);
                }
               
        }
回复 使用道具 举报
不用那么麻烦,你不是已经把所有的都变成小写的吗,取出第一个变成大写的就行,索引为0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马