「已注销」 2021-10-25 11:46 采纳率: 100%
浏览 62
已结题

java考试帮助在控制台输入一行英文语句

在控制台输入一行英文语句,设计一个算法,能够实现如下效果:

(1) 每个单词的首字母大写,后面的小写

(2) 单词之间如果有多个空格,则将其调整为1个空格

(3) 单词的首末空格要全部去除

例如:

输入: Opportunity kocks buT oNce

输出:Opportunity Knocks But Once*/

  • 写回答

2条回答 默认 最新

  • 关注

    代码如下,如有帮助,请帮忙采纳一下,谢谢。

    public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String s = sc.nextLine();
            char array[] = new char[s.length()+1];
            int i=0,j = 1;
            //去掉开头的空格
            while(s.charAt(i) ==' '){
                i++;
            }
            if(s.charAt(i) >='a' && s.charAt(i) <= 'z')
                array[0] = (char) (s.charAt(i) - 32);
            else
                array[0] = s.charAt(i);
            i++;
            for(;i<s.length();i++){
                if( s.charAt(i) == ' ' ){
                    if(array[j-1] != ' ')
                        array[j++] = s.charAt(i);
                    else
                        continue;
                }else {
                    if(array[j-1]==' ')
                        array[j++] = (char) (Character.toLowerCase(s.charAt(i)) - 32);
                    else
                        array[j++] = Character.toLowerCase(s.charAt(i));
                }
            }
            
            for(i = j-1;i>=0;i--){
                if(array[i] != ' ') break;
            }
            array[i+1] = 0;
            String so = String.copyValueOf(array).trim();
            
            System.out.println(so);
    
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月25日
  • 已采纳回答 10月25日
  • 创建了问题 10月25日

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试