Java第四章练习

4.1

Java第四章练习_第1张图片

import java.util.Scanner;

class Demo04_01{
    public static int sumDigits(long n) {
        int sum = 0;
        while (n>0) {
            sum = sum + (int)(n % 10);
            n /= 10;
        }
        return sum;
    }

    public static void main(String[] args) {
        System.out.print("请输入一个正整数:");
        Scanner scanner = new Scanner(System.in);
        System.out.println("这个整数所有数字的和为:" + sumDigits(scanner.nextLong()));
    }
}

4.2

Java第四章练习_第2张图片

import java.util.Scanner;

class Demo04_02 {
    public static int reverse(int number) {
        int sum = 0;
        while (number != 0){
            sum = sum * 10 + number % 10;
            number /= 10;
        }
        return sum;
    }

    public static boolean isPalindrome(int number) {
        if (number == reverse(number)) {
            return true;
        }
        else {
            return false;
        }
    }

    public static void main(String[] args) {
        System.out.print("请输入一个整数值:");
        Scanner scanner = new Scanner(System.in);
        if (isPalindrome(scanner.nextInt())) {
            System.out.println("这个整数是回文数.");
        }
        else {
            System.out.println("这个整数不是回文数.");
        }
    }
}

4.3

Java第四章练习_第3张图片

import java.util.Scanner;

class Demo04_03{
    public static void displayPattern(int n) {
        for(int i=1;i<=n;i++){
            for(int k=1;k<=n-i;k++){
                System.out.print("  ");
            }
            for(int j=i;j>=1;j--){
                System.out.print(j+" ");
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        System.out.print("请输入打印的行数:");
        Scanner scanner = new Scanner(System.in);
        displayPattern(scanner.nextInt());
    }
}

4.4

Java第四章练习_第4张图片

import java.util.Scanner;
class Demo04_04{
    public static void main(String[] args) {
        System.out.println("请输入密码:");
        Scanner scanner = new Scanner(System.in);
        String passwdStr = scanner.next();
        if (isVaildPassword(passwdStr)) {
            System.out.print("Vaild Password");
        }
        else {
            System.out.print("Invaild Password");
        }
    }

    public static boolean isVaildPassword(String passwdStr) {
        boolean condition1 = isMinLengthEight(passwdStr);
        boolean condition2 = isOnlyLettersAndNumbers(passwdStr);
        boolean condition3 = isLeastTwoNumbers(passwdStr);
        if (condition1 && condition2 && condition3) {
            return true;
        }
        else {
            return false;
        }
    }

    public static boolean isMinLengthEight(String passwdStr) {
        if (passwdStr.length() >= 8) {
            return true;
        }
        else {
            return false;
        }
    }

    public static boolean isOnlyLettersAndNumbers(String passwdStr) {
        for (int i = 0; i < passwdStr.length(); i++) {
            char a = passwdStr.charAt(i);
            if (!(a>='0' && a<='9' || a>='a' && a<='z' || a>='A' && a<= 'Z')) {
                return false;
            }
        }
        return true;
    }

    public static boolean isLeastTwoNumbers(String passwdStr) {
        int count = 0;
        for (int i = 0; i < passwdStr.length(); i++) {
            char a = passwdStr.charAt(i);
            if (a>='0' && a<='9') {
                count++;
            }
        }
        if (count >= 2) {
            return true;
        }
        else {
            return false;
        }
    }
}

4.5

Java第四章练习_第5张图片

import java.util.Scanner;

class Demo04_05{
    public static double sqrt(long n) {
        double nextGuess = 0;
        double lastGuess = 1;
        while (true) {
            nextGuess = (lastGuess + n / lastGuess) / 2;
            if(Math.abs(nextGuess - lastGuess) < 0.0001) {
                return nextGuess;
            }
            else {
                double temp;
                temp = nextGuess;
                nextGuess = lastGuess;
                lastGuess = temp;
            }
        }
    }

    public static void main(String[] args) {
        System.out.print("输入一个正整数:");
        Scanner scanner = new Scanner(System.in);
        double n = sqrt(scanner.nextLong());
        System.out.print("这个数的平方根为" + n);
    }
}

4.6

Java第四章练习_第6张图片

import java.util.Scanner;

class Demo04_02 {
    public static int reverse(int number) {
        int sum = 0;
        while (number != 0){
            sum = sum * 10 + number % 10;
            number /= 10;
        }
        return sum;
    }

    public static boolean isPalindrome(int number) {
        if (number == reverse(number)) {
            return true;
        }
        else {
            return false;
        }
    }

    public static boolean isPrimeNumber(int number) {
        boolean flag = true;
        for (int i = 2; i <= number / 2; i++) {
            if (number % i == 0) {
                flag = false;
            }
        }
        return flag;
    }

    public static void main(String[] args) {
        int count = 1;
        for (int i = 2; i <= 1000; i++) {
            if (isPalindrome(i) && isPrimeNumber(i)) {
                System.out.print(i + " ");
                count++;
            }
            if (count % 11 == 0) {
                count = 1;
                System.out.println();
            }
            
        }
        
    }
}

4.7

Java第四章练习_第7张图片

import java.util.Scanner;

class Demo04_02 {
    public static int reverse(int number) {
        int sum = 0;
        while (number != 0){
            sum = sum * 10 + number % 10;
            number /= 10;
        }
        return sum;
    }

    public static boolean isPrimeNumber(int number) {
        boolean flag = true;
        for (int i = 2; i <= number / 2; i++) {
            if (number % i == 0) {
                flag = false;
            }
        }
        return flag;
    }

    public static void main(String[] args) {
        int count = 0;
        int i = 2;
        while (true) {
            if (isPrimeNumber(i) && isPrimeNumber(reverse(i)) && i != reverse(i)) {
                System.out.print(i + " ");
                count++;
                if (count % 10 == 0) {
                    System.out.println();
                }
            }
            i++;
            if (count == 100) {
                break;
            }            
        }
        
    }
}

4.8

Java第四章练习_第8张图片

import java.util.Scanner;
class Demo04_08{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入一个字符串:");
        String Str = scanner.nextLine();
        System.out.print("输入一个字符:");
        String aStr = scanner.nextLine();
        char a = aStr.charAt(0);
        System.out.print("字符" + a + "在字符串出现次数为"+ count(Str,a));
    }

    public static int count(String str,char a) {
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == a) {
                count++;
            }
        }
        return count;
    }
}

4.9

在这里插入图片描述

import java.util.Scanner;

class Demo04_09{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入一个字符串:");
        String inputStr = scanner.nextLine();
        String reversedStr = reverseString(inputStr);
        System.out.print(reversedStr);
    }

    public static String reverseString(String str) {
        String reversedStr = "";
        for (int i = str.length()-1; i >= 0; i--) {
            reversedStr = reversedStr + str.charAt(i);
        }
        return reversedStr;
    }
}

4.10

Java第四章练习_第9张图片

import java.util.Scanner;

class Demo04_10{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String inputStr = scanner.nextLine();
        System.out.print("字符串中大写字母的个数为:" + numberOfUppercaseLetters(inputStr));
    }

    public static int numberOfUppercaseLetters(String str) {
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
                count++;
            }
        }
        return count;
    }
}

4.11

Java第四章练习_第10张图片

import java.util.Scanner;

class Demo04_11{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第一个字符串:");
        String aStr = scanner.nextLine();
        System.out.print("请输入第二个字符串:");
        String bStr = scanner.nextLine();
        String c = commonPrefix(aStr, bStr);
        if (c == null) {
            System.out.print("没有相同的前缀。");
        }
        else {
            System.out.print("相同的前缀为:" + c);
        }
    }
    public static String commonPrefix(String a,String b) {
        int count = 0;
        for (int i = 0; i < (a.length()<b.length() ? a.length() : b.length()); i++) {
            if (a.charAt(i) != b.charAt(i)) {
                break;
            }
            if (a.charAt(i) == b.charAt(i)) {
                count++;
            }
        }
        if (count == 0) {
            return null;
        }
        else {
            return a.substring(0, count);
        }
    }
}

4.12

Java第四章练习_第11张图片

import java.util.Scanner;

class Demo04_12{
    public static void main(String[] args) {
        System.out.print("请输入一个十六进制数:");
        Scanner scanner = new Scanner(System.in);
        String hexStr = scanner.nextLine();
        for (int i = 0; i < hexStr.length(); i++) {
            if(!(hexStr.charAt(i)>='A' && hexStr.charAt(i)<='F' || hexStr.charAt(i)>='0' && hexStr.charAt(i)<='9')) {
                System.out.print("输入的不是十六进制数。");
                return;
            }
        }
        int d = hexToDecimal(hexStr);
        System.out.print("等价的十进制数的值:" + d);
    }
    public static int hexToDecimal(String hexStr) {
        int sum = 0;
        for (int i = hexStr.length()-1; i >= 0; i--) {
            sum = sum + hToD(hexStr.charAt(i)) * (int)Math.pow(16,Math.abs(i-(hexStr.length()-1)));
        }
        return sum;
    }

    public static int hToD(char h) {
        int d = 0;
        switch (h) {
            case '1':
                d = 1;
                break;
            case '2':
                d = 2;
                break;
            case '3':
                d = 3;
                break;
            case '4':
                d = 4;
                break;
            case '5':
                d = 5;
                break;
            case '6':
                d = 6;
                break;
            case '7':
                d = 7;
                break;
            case '8':
                d = 8;
                break;
            case '9':
                d = 9;
                break;
            case '0':
                d = 0;
                break;
            case 'A':
                d = 10;
                break;
            case 'B':
                d = 11;
                break;
            case 'C':
                d = 12;
                break;
            case 'D':
                d = 13;
                break;
            case 'E':
                d = 14;
                break;
            case 'F':
                d = 15;
                break;
        }
        return d;
    }
}

你可能感兴趣的:(java练习)