「已注销」 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日

悬赏问题

  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库