Java中级测试题一-工具类(8/8)

  1. 编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。
public class Task {
    
    /*
     * 1、编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和
     * 
     * 暂未考虑输入的不是数值型的字符串异常
     * 
     */
    public static void sumNumString() {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("请输入第一个数字");
        String numString1 = scanner.next();
        System.out.println("请输入第二个数字");
        String numString2 = scanner.next();
        System.out.println("两个数字和为:" +
        (Integer.parseInt(numString1) + Integer.parseInt(numString2)));
    }
    public static void main(String[] args) {
        sumNumString();//1
    }
}
  1. 编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。(识点:String中常用的方法)
public class Task {
    /*
     * 2、编写一个程序,实现从命令行参数输入一字符串,
     * 统计该字符串中字符“e”出现的次数。(识点:String中常用的方法)
     */
    public static void countWorde() {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("请输入一串字符串");
        String string = scanner.next();
        int count = 0,
            index = 0;
        while(index < string.length()) {
            if(string.indexOf("e",index) == index) {
                count++;
            }
            index++;
        }
        System.out.println("字符串中字符“e”出现的次数是:" + count);
    }
    public static void main(String[] args) {
        countWorde();//2
    }
}
  1. 生成十个0~100之间的随机数,放到数组中,然后排序输出。(知识点:Math类取整,获得随机数等)
public class Task {
    /*
     * 3、生成十个0~100之间的随机数,放到数组中,然后排序输出。
     * 
     */
    public static void RandomNumAndSortOutput() {
        int[] myList = new int[10];
        java.util.Random random = new java.util.Random();
        for(int i = 0;i < myList.length;i++) {
            myList[i] = random.nextInt(100);
        }
        java.util.Arrays.sort(myList);//Java自带排序更改原数组没有返回值
//      for(int i = 0;i < myList.length - 1;i++) {
//          for(int j = 0;j < myList.length - 1 -i;j++) {
//              if(myList[j] > myList[j + 1]) {
//                  int temp = myList[j];
//                  myList[j] = myList[j +1];
//                  myList[j + 1] = temp;
//              }
//          }
//      }//冒泡排序
        System.out.println(java.util.Arrays.toString(myList));
    }
    public static void main(String[] args) {
        RandomNumAndSortOutput();//3
    }
}
  1. 巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时,试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间。
public class Task {
    /*
     * 4、巴黎时间比北京时间晚7个小时,
     * 纽约时间比北京时间晚12个小时,
     * 试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间。
     */
    public static void getLocTime() {
        java.util.Date date = new java.util.Date();
        System.out.println("北京时间为: " + date);
        //把时间相加 操作的是毫秒值
        java.util.Date parisDate = new java.util.Date(date.getTime() - 
        7*60*60*1000);
        System.out.println("Paris时间为:" +parisDate);
        java.util.Date newYorkDate = new java.util.Date(date.getTime() - 
        12*60*60*1000);
        System.out.println("New York时间为:" +newYorkDate);
    }
    public static void main(String[] args) {
        getLocTime();//4
    }
}
  1. 解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因

5.1 提示:邮箱地址不合法的因素:

5.1.1邮箱地址中不包含@或.

5.1.2邮箱地址中含有多了@或.

5.1.3邮箱地址中.出现在@的前面

5.1.4用户名里有其他字符

5.2实现步骤:

5.2.1创建一个类,类名:mailtest

类图如下:

import java.util.Scanner;

public class Task {
    /*
     * 5、解析一个邮箱地址是否合法,
     * 如果合法则打印出用户名部分和该邮箱所属的网站域名,
     * 如果邮箱地址不合法则显示不合法的原因 [选做题] 
     * 5.1提示:邮箱地址不合法的因素: 
     * 5.1.1邮箱地址中不包含@或. 
     * 5.1.2邮箱地址中含有多了@或. 
     * 5.1.3邮箱地址中.出现在@的前面
     * 5.1.4用户名里有其他字符 
     * 5.2实现步骤:
     * 5.2.1创建一个类,类名:mailtest
     */
    
    public static void mailtest() {
        //假定此 处就是mailtest类
        System.out.println("请输入你的邮箱名字");
        Scanner scanner = new Scanner(System.in);
        String email = scanner.next();
        // 5.1.1邮箱地址中不包含@或. 
        if(email.indexOf("@") == -1 || email.indexOf(".") == -1) {
            System.out.println("邮箱中不包含'@'或'.',不合法");
            return;
        }
        //5.1.2邮箱地址中含有多了@或. 
        if(email.indexOf("@") != email.lastIndexOf("@") || email.indexOf(".") != email.lastIndexOf(".")) {
            System.out.println("邮箱中包含多个'@'和'.',不合法");
            return;
        }
        //5.1.3邮箱地址中.出现在@的前面
        if(email.indexOf(".") < email.indexOf("@")) {
            System.out.println("邮箱中'.'在'@'前面,不合法");
            return;
        }
        //5.1.4用户名里有其他字符 
        /**
         * 只能包含 0 ~ 9 a ~ z A ~ Z
         * 0 对应的ASCII码十进制值为 :48
         * A对应的ASCII码十进制值为:65
         * a对应的ASCII码十进制值为:97
         */
        for (int i = 0; i < email.indexOf("@"); i++) {
            if(email.charAt(i) > '0' && email.charAt(i) < '9' || 
                    email.charAt(i) > 'A' && email.charAt(i) < 'Z' ||
                    email.charAt(i) > 'a' && email.charAt(i) < 'z') {
//              System.out.println("邮箱合法");
            }else {
                System.out.println("邮箱不合法,用户名里有其他字符 ");
            }
        }
    }
    public static void main(String[] args) {
//      mailtest();//5
    }
}
  1. 分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数。
public class Task {
    /*
     * 6、分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数
     * 
     */
    public static void countWord() {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("请输一个长度大于1的字符串");
        String string1 = scanner.next();
        System.out.println("请输入一个长度为1的字符串");
        String string2 = scanner.next();
        int index = 0,
            count = 0;
        while (index < string1.length()) {
            if(string1.indexOf(string2,index) == index) {
                count++;
            }
            index++;
        }
        System.out.println(string2+"   在   "+string1+"
         中出现的次数为:" + count +" 次");
    }
    public static void main(String[] args) {
        countWord();//6
    }
}

  1. 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
public class Task {
    /*
     * 7、有一个字符串,
     * 其中包含中文字符、
     * 英文字符和数字字符,
     * 请统计和打印出各个字符的个数。
     * 
     */
    public static void countZhEnNum() {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("请输入一个包含中文、字母和数字的字符串");
        String scString = scanner.next();
        StringBuilder zhStringBuilder = new StringBuilder();
        StringBuilder enStringBuilder = new StringBuilder();
        StringBuilder numStringBuilder = new StringBuilder();
        for (int i = 0; i < scString.length(); i++) {
            // 使用Character.getType()方法获取字符的类型
            switch (Character.getType(scString.charAt(i))) {
            case 1: // 大写字母
                enStringBuilder.append(scString.charAt(i));
                break;
            case 2: // 小写字母
                enStringBuilder.append(scString.charAt(i));
                break;
            case 5: // 中文字符
                zhStringBuilder.append(scString.charAt(i));
                break;
            case 9: // 数字
                numStringBuilder.append(scString.charAt(i));
                break;
            default:
                break;
            }
        }
        System.out.println(scString + "    中包含的中文字符为:" + 
        zhStringBuilder.length() + " 个\t包含的英文字符为:"
        + enStringBuilder.length() + " 个\t包含的数字字符为" + 
        numStringBuilder.length() + "个");
    }
    public static void main(String[] args) {
        countZhEnNum();//7
    }
}
  1. 有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。编写一个程序,从命令行得到一个整数,判断该数是不是回文数。
public class Task {
    /*
     * 8、有一种数叫回文数,正读和反读都一样, 
      * 如12321便是一个回文数。 编写一个程序,
      * 从命令行得到一个整数,判断该数是不是回文数。
     * 
     */
    public static void isPalindromeNumber() {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("请输入一个长度大于1的数字");
        String numString = scanner.next();
        StringBuilder stringBuilder = new StringBuilder(numString);
        stringBuilder.reverse();
        // stringBuilder.toString()将StringBuilder类型转换成String类型
        if (Integer.parseInt(numString) == 
         Integer.parseInt(stringBuilder.toString())) {
            System.out.println(numString + "是回文数");
        } else {
            System.out.println(numString + "不是回文数");
        }
        /**
         * 第二种方法
         * 利用equals()方法判断两个对象是否相等
         */
//      if (numString.equals(new StringBuilder(numString).reverse().toString())) {
//          System.out.println("是回文数");
//      } else {
//          System.out.println("不是");
//      }
    }
    public static void main(String[] args) {
        isPalindromeNumber();//8
    }
}

分割线


博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容