第三次Java实验报告

Java实验报告

 

班级 计科二班 学号20188437 姓名 何磊

完成时间 2019/9/22

评分等级

实验三 String类的应用

  1. 实验目的
    1. 掌握类String类的使用;
    2. 学会使用JDK帮助文档;
  2. 实验内容

    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

  3. 统计该字符串中字母s出现的次数。
  4. 统计该字符串中子串"is"出现的次数。
  5. 统计该字符串中单词"is"出现的次数。
  6. 实现该字符串的倒序输出。

2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

 

 

 

 

 

 

 

3.已知字符串"ddejidsEFALDFfnef2357 3ed"。输出字符串里的大写字母数,小写英文字母数,非英文字母数。

 

  1.  
  1. 实验过程(请自己调整格式)

1.(一)实验代码

package第三次java实验;

 

public class Thisisatestofjava {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        int count=0;

        String s="this is a test of java";

        System.out.println((","+s+",").split("s").length-1);

        //方法一:split函数对字符串s"s"位置进行拆分,然后通过.length得到拆分后的字符串的个数,减1得到"s"出现的次数

        char c[]=s.toCharArray();

        for(char e:c){

            if(e=='s'){

                count++;

            }

        }

        //方法二:用toCharArray函数将字符串s变成字符数组,foreach循环对字符数组进行遍历,判断并计数

        System.out.println((","+s+",").split("is").length-1); //同上方法一

        System.out.println((","+s+",").split(" is ").length-1); //同上

        for (int i=c.length-1;i>= 0;i--) {

            System.out.print(c[i]);

        }

        //利用字符数组下标递减输出

        StringBuffer buffer = new StringBuffer(s);

        System.out.println("\n"+buffer.reverse());

        //定义成一个StringBuffer类,用StringBuffer类中的reverse()方法直接倒序字符串。

}

}

(二)运行结果

2.(一)实验代码

package 第三次java实验;

import java.util.Scanner;

public class 加密解密 {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String s=input.nextLine();   //输入一个字符串
        int length=s.length();       //取得字符串长度
        char c[]=s.toCharArray();    //将字符串拆分为单个字符
        if(length>2){                //如果字符串长度大于2进入循环
        String p=s.substring(length-3);   //截取字符串最后3位字符
        for(int j=length-4;j>=0;j--){     //将字符串后移3位
            c[j+3]=c[j];
        }
        char c1[]=p.toCharArray();        //将截取后的字符串拆分为单个字符
        for(int k=0;k<3;k++){             //将截取的字符连接到字符数组前3位
            c[k]=c1[k];
        }
        System.out.println(c);            //输出
        }
        else{                             //字符串长度小于3直接输出字符串
            System.out.println(s);
        }
        for(int i=0;i<length;i++){        //将每个字符的ASCLL码值向后偏移三位
            c[i]=(char)(c[i]+3);
        }
        System.out.println(c);            //输出
    }
}

 

 

 

 

 

(二)运行结果

 

 

3.(一)实验代码

package第三次java实验;

 

public class统计字符串 {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        int ABC=0,abc=0,other=0;

        String s="ddejidsEFALDFfnef2357 3ed";

        char c[]=s.toCharArray();

        for(char e:c){

            if(e>='A'&&e<='Z'){

                ABC++;

            }

            else if(e>='a'&&e<='z'){

                abc++;

            }

            else{

                if(e!=' '){

                    other++;

                }

            }

        }

        System.out.print("大写字母数:"+ABC+"\n小写字母数:"+abc+"\n非英文字母数:"+other);

    }

 

}

(二)运行结果

  1. 总结:

本次实验主要内容为字符串的处理,要学会善于利用String类和StringBuffer类中的方法。

加密解密题输入空格会导致只能输出空格前的字符,发现next()输入遇到空格时结束输入,改为nextLine()后解决。

同一问题有多种方法可以解决,举一反三就能学到更多。

本周学习了Java常用类库中的StringBuffer类以及package包的引用等,主要是一些概念类的知识,需要课余加以记忆巩固。

 

 

 

 

posted @ 2019-09-22 15:51  hlywww  Views(466)  Comments(2Edit  收藏  举报