wof168 2023-04-20 17:28 采纳率: 95.7%
浏览 10
已结题

输入一个句子按照字典序输出单词



package 字符串;

import java.util.Scanner;

public class SentenceCount {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
     Scanner sc = new Scanner(System.in);
     String sentence =sc.nextLine();
     int count=0;//句子数
     String zimu[]=sentence.split("");
     String word[]=sentence.split(" ");
   char arr[]=new char[200];
     for(int i=0;i<zimu.length;i++ ) {
         char b=zimu[i].charAt(0);
         int c=b;
    
        System.out.print(zimu[i]);
         if(c==33||c==63||c==46) {
             count++;
             System.out.println("");
         }     
     }

     System.out.println(count);
      
      
     for(int i=0;i<word.length;i++){
         arr[200]=word[i].charAt(0);
      }
      char temp=0;
      for(int i=1;i<200;i++) {
          if((int)arr[i]>(int)arr[i-1]) {
             
              temp=arr[i];
              arr[i]=arr[i-1];
             arr[i-1]=temp;         
          }
         for(int j=0;j<word.length;j++){
              System.out.println(arr[j]);
           }
      } 
    }

}

为什么运行不了怎么改呢

  • 写回答

2条回答 默认 最新

  • CQ.abc 2023-04-20 17:32
    关注

    试试👀

    package 字符串;
    
    import java.util.Scanner;
    
    public class SentenceCount {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String sentence = sc.nextLine();
            int count = 0; //句子数
            String[] zimu = sentence.split(""); // 按字符分割字符串
            String[] word = sentence.split(" "); // 按空格分割字符串
            char[] arr = new char[200];
            for (int i = 0; i < zimu.length; i++) {
                if (!zimu[i].isEmpty()) { // 检查字符是否为空
                    char b = zimu[i].charAt(0);
                    int c = b;
                    System.out.print(zimu[i]);
                    if (c == 33 || c == 63 || c == 46) { // 根据ASCII码判断是否为句子结束符
                        count++;
                        System.out.println("");
                    }
                }
            }
            System.out.println(count);
    
            for (int i = 0; i < word.length; i++) {
                arr[i] = word[i].charAt(0); // 将单词的首字母保存到字符数组中
            }
            char temp = 0;
            // 冒泡排序,将单词首字母按字母表顺序排列
            for (int i = 0; i < word.length - 1; i++) {
                for (int j = i + 1; j < word.length; j++) {
                    if ((int) arr[i] > (int) arr[j]) {
                        temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            // 打印排序后的单词首字母
            for (int j = 0; j < word.length; j++) {
                System.out.println(arr[j]);
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染