java的一个课后习题

java的一个课后习题,自己写的代码,不是很好,题目如下:

  1. 编写一个程序,输入一个句子,然后统计出这个句子中不同单词出现的次数。例如,对于句子“one little two little three little boys”,单词one出现1次、little单词出现3次。说明:1)输入的句子中只包含英文字符和空格,单词之间用一个空格隔开。2)不用考虑单词的大小写,假设输入的都是小写字符。3)句子长度不超过100字符。

代码如下:

public static void main(String[] args) {
	// TODO Auto-generated method stub		
	System.out.print("请输入一个英文句子,只含英文字符和空格,以“.”结束:");
    Scanner console = new Scanner(System.in);
    //用来存输入字符串,一个单词一个字符串
    String [] strArray = new String [100];  
      //n为总单词个数
    int n = 0;      
    //直到“.”结束
    while(!console.hasNext(".")){          	
        strArray[n] = console.next();  
        n++;     
    }  
    String [] s= new String[n];
    int [] c= new int[n];
    //a为每个单词个数
    int sum = n,a=0; 
    boolean b = false;
    for(int i = 0; i <n; i++)
    {  
        for(int j = 0; j <=a; j++)  
            if (strArray[i].equals(s[j]))
            {  
                sum--;  
                c[j]=c[j]+1;
                b=true;
                break;  
            }
			if (b!=true)
			{	//copy到s[i]中
				System.arraycopy(strArray,i, s,a, 1);
				c[a]++;
				a++;
			}	
			b = false;			
    }
    System.out.print("单词个数为"+sum);
    System.out.print("分别为:");
    for(int j=0;j<sum;j++)
	{	
    	System.out.print("单词 "+s[j]+"个数为:");
		System.out.print(c[j]+" ");
	}	    
 }

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值