初学JAVA之二

 

1、 串操作:使用字符串存贮一个英文句子“Java is an object oriented programming

 language”。显示该句子,并算出每个单词的字母数和平均字母数,并按单词升序排列输出(不用数组,只用串操作)

public class homework21 {

   public static void main(String[] args) {

          String java = "Java is an object oriented programming language.";

          float sum1= java.length();                   //字符串长度48

          System.out.println(java);                  //输出字符串

          StringBuffer copyToMe = new StringBuffer();//定义缓冲区

          int i = 0;

          int number=0;

          int length=0;

          float sum=0;

          char c = java.charAt(i);                  

//返回字符串对象中第i个位置的字符

          while(i<sum1)

          {

                if (c != ' ')

                {

                  if(c=='.')//最后一个单词的判断

                   {

                       number ++;                   //单词数

                       System.out.println(""+number+"单词"+"长度为"+length);

                       System.out.println("字符串单词数目为"+number);

                       System.out.print("每个单词的平均字母数:");

                       System.out.println((double)((sum1-number)/number));

                       i++;

                   }

                   else

                   {

                      copyToMe.append(c);          

//将字符串追加在原 stringBuffer字符串对象的后面

                      c = java.charAt(++i);         //更新

                      length ++;                    //字符串的长度更新

                    }

              }

              else

              {

                     number ++;//第几个单词

                     System.out.println(""+number+"单词"+"长度为"+length);

                     length=0;

                     c = java.charAt(++i);

             }

       }

       paixu();

    }

 

     public static void paixu()

    {

         String java1 = "Java is an object oriented programming language.";//定义字符串常量

         System.out.println("原字符串为:"+java1);                  //输出字符串

         System.out.println("排序后字符串为:");

        StringBuffer copy = new StringBuffer(); //字符串变量用于接收排序后的字符串

         String max="a";   //字符初始化

        String restr;        //接收字符串

        String rec;         //接收字符串

        String maxstr;       //接收字符

        String test="a";   //哨兵

        int v=0;     //定义循环中的变量

         int j=0;

       //for循环求得最大字符串max

       for(int k=0;k<java1.length();k++)

       {

          if(java1.charAt(k)!=' '&& k!=java1.length()-1)

            continue;

            maxstr=java1.substring(v,k);

             v=k+1;

            if(maxstr.compareToIgnoreCase(max)>=0)

            max=maxstr;

       }

          for(int i=0;i<java1.length();i++)

         {  

            if(java1.charAt(i)!=' '&& i!=java1.length()-1)//控制条件

               continue;

              j=i+1;

              rec=max; 

              int n=0;

               for(int m=0;m<java1.length();m++)

              {

                if(java1.charAt(m)!=' '&& m!=java1.length()-1)

                continue;

                 restr=java1.substring(n,m);   //取得子串

                n=m+1;

               if(rec.compareToIgnoreCase(restr)>=0&&restr.compareToIgnoreCase(test)>0)

                rec=restr;//比较,赋值

              }

           test=rec;

           copy.append(rec);  //更新字符变量

           System.out.print(rec+"  ");//逐个输出排序所得单词和空格

      }

 }

}

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

运行结果:

D:/jdk/xi>javac homework21.java

 

D:/jdk/xi>java homework21

Java is an object oriented programming language.

1单词长度为4

2单词长度为2

3单词长度为2

4单词长度为6

5单词长度为8

6单词长度为11

7单词长度为8

字符串单词数目为7

每个单词的平均字母数:5.857142925262451

原字符串为:Java is an object oriented programming language.

排序后字符串为:

an  is  Java  language  object  oriented  programming

截图:

 

 

2、 数组:编写 Java 程序实现:输入一组整数存放在数组中,比较并输出其中的最大值和

最小值;再将数组元素从小到大排序并输出。

 

import   java.io.*;  

import   java.lang.*;  

   

public class work22

{ 

    static int[] an=new int[10];//全局变量  

 

    public static void main(String[] args) throws Exception {  

           BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));  

           for(int i=0;i<an.length;i++)

           {  

             an[i]=Integer.parseInt(reader.readLine());

             //依次接收10个数字,并保存在an  

           }  

           min();//调用函数min,得到最小值  

           max();//调用函数max,得到最大值  

           paixu();//调用paixu,按从小到大输出数组元素

          }//main结束  

          public   static   void   min() 

          { //求数组元素中最小值并输出

            int t= an[0];  

            for(int i=0;i<an.length;i++)

             {  

               if(t>an[i])  

               t=an[i];//相互比较,找出最小值    

             }  

            System.out.println("最小值是:"   );  

            for(int i=0;i<an.length;i++)

             {  

               if(t==an[i])

                {  

                  System.out.println(an[i]);

                  //把与最小值相等的数组元素输出  

                }  

            }  

        }//min结束  

       public static void max() //求最大值并输出

       { 

         int t1=an[0];  

         for(int i=0;i<an.length;i++)

         {  

            if(t1<an[i])

            {  

              t1=an[i];//相互比较,找出最大值  

            }  

         }  

         System.out.println("最大值是:");  

         for(int i=0;i<an.length;i++)

         {  

           if(t1==an[i])

            {  

             System.out.println(an[i]);

             //把与最大值相等的数组元素输出  

            }  

         }  

      }//max结束  

      

      public static void paixu()

     {  

       int[] an1=new int[10];

       for(int i=0; i<an.length;i++)

       {//an数组元素复制到an1数组中

          an1[i]=an[i];

       }

      for(int i=0;i<an1.length;i++)

      { //an1数组进行排序

        for(int j=0;j<an1.length-1-i;j++)

        {

           if(an1[j]>an1[j+1])

           {

              int t=an1[j];

              an1[j]=an1[j+1];

              an1[j+1]=t;

           }

        }

      }

      for(int k = 0; k < an1.length; k++)

      {

        System.out.println("an1:"+an1[k]);

      }

   }

}

运行结果:

D:/jdk/xi>javac work22.java

 

D:/jdk/xi>java work22

23

67

44

55

77

88

22

33

11

2

最小值是:

2

最大值是:

88

1个元素为:2

2个元素为:11

3个元素为:22

4个元素为:23

5个元素为:33

6个元素为:44

7个元素为:55

8个元素为:67

9个元素为:77

10个元素为:88

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值