1. 程式人生 > >JavaSE高階應用程式設計——工具類練習題

JavaSE高階應用程式設計——工具類練習題

1、 編寫一個程式,實現從命令列引數輸入兩個字串型別的數值,並計算輸出兩個數值的和。 [必做題]

//編寫一個程式,實現從命令列引數輸入兩個字串型別的數值,並計算輸出兩個數值的和。 [必做題]
import java.util.Scanner;
public class MySum {
    public static void main(String[] args) {
        System.out.println("請輸入兩個字串型別的數值……");
        Scanner in = new Scanner(System.in);
        String str1 = in
.next(); String str2 = in.next(); MySum(str1,str2); } public static void MySum(String str1,String str2){ int x = Integer.parseInt(str1); int y = Integer.parseInt(str2); int sum = x+y; System.out.println(x+"與"+y+"兩個數值的和為"+sum); } }

這裡寫圖片描述
• 2、編寫一個程式,實現從命令列引數輸入一字串,統計該字串中字元“e”出現的次數。(識點:String中常用的方法) [必做題]

//編寫一個程式,實現從命令列引數輸入一字串,統計該字串中字元“e”出現的次數。(識點:String中常用的方法) [必做題]
import java.util.Scanner;

public class eCount {
    public static void main(String[] args) {
        System.out.println("請輸入一個字串");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        MyeCount(str);
    }

    public
static void MyeCount(String str){ String str2 = ""; int sum = 0; for(int i = 0;i<str.length();i++){ if(str.charAt(i) == 'e'){ sum++; } } System.out.println("字串\""+str+"\"中有"+sum+"個e字元"); } }

這裡寫圖片描述
• 3、生成十個0~100之間的隨機數,放到陣列中,然後排序輸出。(知識點:Math類取整,獲得隨機數等) [必做題]

import java.util.Arrays;

//生成十個0~100之間的隨機數,放到陣列中,然後排序輸出。(知識點:Math類取整,獲得隨機數等) [必做題]
//注*對於陣列排序有氣泡排序和陣列排序方法兩種,任選其一即可
public class MyScort {
    public static void main(String[] args) {
        MyScort();
    }

    public static void MyScort(){

//      定義一個長度為10的陣列用來儲存隨機數
        int[] arr = new int[10];

//      依次為陣列存入是個隨機數
        for(int i = 0;i<10;i++){
            arr[i] =  (int) Math.round(Math.random()*100);
        }

//      方法一—……氣泡排序,對陣列的元素進行排序
        for(int j = 1;j<=arr.length;j++){
            for(int i = 0;i<arr.length-j;i++){
                int m = 0;
                if(arr[i]>arr[i+1]){
                    m = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = m;
                }
            }           
        }

//      方法二……陣列方法排序
        Arrays.sort(arr);


//      遍歷輸出陣列
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }
}

這裡寫圖片描述
• 4、巴黎時間比北京時間晚7個小時,紐約時間比北京時間晚12個小時,試編寫一程式,根據輸入的北京時間輸出相應的巴黎和紐約時間。[選做題]

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class MyTime {
    public static void main(String[] args) throws ParseException{
        MyTime();
    }
    public static void MyTime() throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cd = Calendar.getInstance();  
        Scanner in = new Scanner(System.in);    
        System.out.println("請依次輸入北京時間的年份、月份、日期、時間數、分鐘數,秒數用空格隔開……");
        String str1 = in.nextLine();
        String[] arr = str1.split(" ");
        if(arr.length != 6){
            System.out.println("你輸入的資料個數不符合題意");
        }else{
            String str = arr[0]+"-"+arr[1]+"-"+arr[2]+" "+arr[3]+":"+arr[4]+":"+arr[5];

            Date date = sdf.parse(str);

             System.out.println("北京時間為:" + sdf.format(date.getTime()));
             System.out.println("巴黎時間為:" + sdf.format(date.getTime() - (long)7* 60 * 60 * 1000));
             System.out.println("紐約時間為:" + sdf.format(date.getTime() - (long)12* 60 * 60 * 1000));
        }
    }
}

這裡寫圖片描述
• 5、解析一個郵箱地址是否合法,如果合法則打印出使用者名稱部分和該郵箱所屬的網站域名,如果郵箱地址不合法則顯示不合法的原因 [選做題]
• 5.1 提示:郵箱地址不合法的因素:
• 5.1.1郵箱地址中不包含@或.
• 5.1.2郵箱地址中含有多了@或.
• 5.1.3郵箱地址中.出現在@的前面
• 5.1.4使用者名稱裡有其他字元
• 5.2實現步驟:
• 5.2.1建立一個類,類名:mailtest
• 類圖如下:這裡寫圖片描述

import java.util.Scanner;

//5、解析一個郵箱地址是否合法,如果合法則打印出使用者名稱部分和該郵箱所屬的網站域名,如果郵箱地址不合法則顯示不合法的原因 [選做題]
//• 5.1 提示:郵箱地址不合法的因素:
//• 5.1.1郵箱地址中不包含@或.
//• 5.1.2郵箱地址中含有多了@或.
//• 5.1.3郵箱地址中.出現在@的前面
//• 5.1.4使用者名稱裡有其他字元
//• 5.2實現步驟:
//• 5.2.1建立一個類,類名:mailtest
public class MyEmil {
    public static void main(String[] args) {
        System.out.println("請輸入一個郵箱地址……");
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();

        if(TestMail(str) == true){

        }else{
            System.out.println("不合法");
        }

    }
    public static boolean TestMail(String str){
        boolean b = true;
        if(str.indexOf('@') == -1 || str.indexOf('.') == -1){
            System.out.println("郵箱地址中不包含@或.");
            return  false;
        }
        if(str.indexOf('@') != str.lastIndexOf('@') ||str.indexOf('.') != str.lastIndexOf('.')){
            System.out.println("郵箱地址中含有多了@或.");
            return false;
        }
        if(str.lastIndexOf('@') > str.indexOf('.')){
            System.out.println("郵箱地址中.出現在@的前面");
            return false;
        }
            for(int i = 0;i<str.indexOf('@');i++){
                char c = str.charAt(i);
                if( (c>=4&&c<=57) || (c>=65&&c<=90) || (c>=97&&c<=122) ){

                }else{
                    System.out.println("郵箱使用者名稱包含非法字元");
                    return false;
                }
            }

            String[] array = str.split("@");
            System.out.println("使用者名稱為:"+array[0]);
            System.out.println("該郵箱所屬的網站域名為"+array[1]);

            return true;    
    }
}

這裡寫圖片描述
• 6、分別在控制檯輸入字串和子字串,並計算字串中子字串出現的次數。 [選做題]


import java.util.Scanner;

//分別在控制檯輸入字串和子字串,並計算字串中子字串出現的次數。 [選做題]
public class MyCount {
    public static void main(String[] args) {
        MyCount();
    }
    public static void MyCount(){
        System.out.println("請輸入一個字串");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        System.out.println("請輸入需要統計的子字串");
        String str1 = in.next();

        String str2 = "";
        int sum = 0;

        for(int i = 0;i<str.length();i++){
            if(str.charAt(i) == str1.charAt(0)){
                for(int j = i;j<str1.length();j++){
                    str2 = str2 + str.charAt(j);
                }
                sum++;
                i=i+str2.length()-1;
            }
        }
        System.out.println("字串\""+str+"\"中有"+sum+"個\""+str1+"\"");
    }
}

這裡寫圖片描述
• 7、有一個字串,其中包含中文字元、英文字元和數字字元,請統計和打印出各個字元的個數。 [選做題]


import java.util.Scanner;

public class MyGroup {
    public static void main(String[] args) {
        MyGroup();
    }

    public static void MyGroup(){

        int sum1 = 0;
        int sum2 = 0;
        int sum3 = 0;

        System.out.println("請輸入一個字串");
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();

        for(int i = 0 ;i<str.length();i++){
            if(str.charAt(i) >=0x30 && str.charAt(i) <=0x39){
                sum1++;
            }
            if((str.charAt(i) >=0x61 && str.charAt(i) <=0x7a)||(str.charAt(i) >=0x41 && str.charAt(i) <=0x5a)){
                sum2++;
            }
            if(str.charAt(i)>0x0391 && str.charAt(i) <= 0xFFE5){
                sum3++;
            }
        }
        System.out.println("字串\""+str+"\"中有\n"+sum1+"個數字字元,有"+sum2+"個英文字元"+sum3+"箇中文字元");
    }

}

這裡寫圖片描述
• 8、有一種數叫回文數,正讀和反讀都一樣,如12321便是一個迴文數。編寫一個程式,從命令列得到一個整數,判斷該數是不是迴文數。 [選做題]


import java.util.Scanner;

public class MyNum {
    public static void main(String[] args) {
        System.out.println("請輸入一個數……");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();

        if(MyNum(num)==true){
            System.out.println(num+"是迴文數");
        }else{
            System.out.println(num+"不是迴文數");
        }
    }
    public static boolean MyNum(int num){

//      將數字轉化成字串
        String str = String.valueOf(num);
        boolean b = true;

//      從兩端向中間遍歷字串,並進行迴文數條件判斷
        for(int i = 0,j = str.length()-1;i<str.length()/2 ;i++,j--){
            if(str.charAt(i) != str.charAt(j) ){
                b = false;
                break;
            }
        }
        return b;
    }
}

這裡寫圖片描述

相關推薦

JavaSE高階應用程式設計——工具練習題

1、 編寫一個程式,實現從命令列引數輸入兩個字串型別的數值,並計算輸出兩個數值的和。 [必做題] //編寫一個程式,實現從命令列引數輸入兩個字串型別的數值,並計算輸出兩個數值的和。 [必做題] import java.util.Scanner; publi

工具——練習題

本章實戰專案任務 完成跨境電商專案商品保質期計算功能如下: *輸入日期格式字串作為商品的生產日期,輸入保質期(天);計算截止到今天,該商品還有多少天會過期 import java.text.ParseException; import java.text.SimpleDateForm

快速建立SpringBoot2.x應用工具自動建立web應用、SpringBoot2.x的依賴預設Maven版本

快速建立SpringBoot2.x應用之工具類自動建立web應用簡介:使用構建工具自動生成專案基本架構   1、工具自動建立:http://start.spring.io/   2、訪問地址:http://localhost:8080/ 開始下載,解壓,匯入Maven專案 匯入後:

Java高階應用程式設計——集合

一、Java中的集合類 集合概述 Java中集合類是用來存放物件的 集合相當於一個容器,裡面包容著一組物件 ————容器類 其中的每個物件作為集合的一個元素出現 Java API提供的集合位於java.util包內 j

Android 判斷手機有沒有安裝該應用工具

public class AppInstallUtils{ private static List<PackageInfo> cachedList; private static long lastDetectTime = 0; /** * 判斷是否安裝

javaSE高階開發之集合——棧與佇列

一、棧 package com.wschase.hashmap; import java.util.Stack; /** * Author:WSChase * Created:2019/1/7 */ ////一、棧--》先進後出 // //在生活中有很多這樣的例子,就是先

JAVA高階應用之異常處理

異常分類 Throwable(異常最頂端的類) Error(伺服器奔潰 資料庫奔潰) Exception(異常類) RunTimeException 解決異常

Python高階應用程式設計任務

Python高階應用程式設計任務要求 用Python實現一個面向主題的網路爬蟲程式,並完成以下內容:(注:每人一題,主題內容自選,所有設計內容與原始碼需提交到部落格園平臺) 一、主題式網路爬蟲設計方案(15分) 1.主題式網路爬蟲名稱   名稱:爬取攜程網站泉州地區酒店資訊 2.主題式網路爬蟲爬取的

高併發程式設計系列:4大併發工具的功能、原理、以及應用場景

通常我們所說的併發包也就是java.util.concurrent,集中了Java併發工具類和併發容器等,今天主要介紹Java併發程式設計的工具類,我先從Java併發工具包談起。 01 — 併發工具包涵蓋範圍 1.併發工具類 提供了比synchronized更加高階

java基礎之JDBC三:簡單工具的提取及應用

註冊 args 釋放資源 file void tex 用戶名 SQ lose 簡單工具類: public class JDBCSimpleUtils { /** * 私有構造方法 */ private JDBCSimpleU

Java 高級應用編程 第一章 工具

創建 類名 www 完成 安全 註意 容量 lan 地址 一、Java API   Java API簡介     1、API (Application Programming Interface) 應用程序接口     2、Java中的API,就是JDK提供的各種功能的Ja

Java併發程式設計的藝術之八----java中的併發工具

1.等待多執行緒完成的countDownLatch CountDownLatch允許一個或多個執行緒等待其他執行緒完成操作。 執行緒中,讓一個執行緒等待最簡單的做法是使用join方法,執行緒A中呼叫B.join方法,說明讓執行緒A等待執行緒B完成之後再執行。 實現原理:不停檢查執行緒是否

JavaEE程式設計實驗 實驗1 Java常用工具程式設計(未完成)

1.使用String類分割split將字串“Solutions to selected exercises can be found in the electronic document The Thinking in Java Annotated Solution Guide,available for a

BeanUtil工具簡介及應用

概述 BeanUtils工具是Apache Commons元件的成員之一,主要用於簡化JavaBean封裝資料的操作。 使用的好處:BeanUtils給物件封裝引數的時候會進行型別自動轉換。 Apache Common BeanUtil是一個常用的在物件之間複製資料

JsonUtil工具簡介及應用

 專案中經常會有String轉Object以及Object轉Json字串的等其他的轉化需求,合理的使用Json工具類會很方便轉換。 JsonUtil.java應用 —— toList Map dataMap = returnResul

第二天 : AOP 面向切面程式設計 、 JdbcTemplete 工具使用

AOP 面向切面程式設計 、 JdbcTemplete 工具類使用 目錄 一、 什麼是 AOP ***** 二、 AOP 的底層實現 1、 JDK動態代理 2、 使用CGlib 完成動態代理 三、 Spring AOP 1、 傳統Spring AOP 提供

javaSE之面向物件程式設計->與物件(上)——1 and 2

一、面向物件程式設計的簡介 在C語言的學習中我們所有的程式風格都是面向過程的,也就是比如兩個數相加這個程式段需要多次執行那麼我們在C語言中只能通過程式碼的賦值貼上才可以辦到,但是我們在面向過程程式設計裡面也有這樣類似的思想,就是函式。在java中我們採用面向物件的方法,就是可以將程式碼的可重

JavaSE之面向物件程式設計—抽象與介面—— 1

                        &n

ubuntu16.04程式設計軟體之工具

zsh 安裝zsh + zsh 相容bash + zsh 官網:Zsh + 檢視CentOS已安裝的shell cat /etc/shells 正常結果應該是這樣的: /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh + 檢視