栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础

Java类型转换

java隐式类型转换

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        // Implicit casting
        // byte -> short > int > long > float > double
        double x = 1.1;
        double y = x + 2; // 2 -> 2.0
        System.out.println(y);
    }
}

java强制类型转换

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        // Explicit casting
        // byte > short > int > long > float > double
        double x = 1.1;
        int y = (int) x + 2; // 1.1 -> 1
        System.out.println(y);
    }
}

字符串类型->整形

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        // Implicit casting
        // byte > short > int > long > float > double
        String x = "1";
        int y = Integer.parseInt(x) + 2; // "1" -> 1
        System.out.println(y);
    }
}

字符串类型->double

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        // Implicit casting
        // byte > short > int > long > float > double
        String x = "1.1";
        Double y = Double.parseDouble(x) + 2; // "1" -> 1
        System.out.println(y);
    }
}

Math包的一个例子

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int result = (int) Math.round(Math.random() * 100);	// double型不能自动转换成int型
        System.out.println(result);
    }
}

数字格式化
//'NumberFormat' is abstract; cannot be instantiated
    
//Returns:the NumberFormat instance for currency formatting
//NumberFormat.getCurrencyInstance()是一个factory method, 返回一个新的实例
package com.Shayne;

import java.text.NumberFormat;

public class Main {

    public static void main(String[] args) {
        NumberFormat currency = NumberFormat.getCurrencyInstance();
        String result = currency.format(1234567.891);
        System.out.println(result);
    }
}

//out: ¥1,234,567.89

另一个例子

package com.Shayne;

import java.text.NumberFormat;

public class Main {

    public static void main(String[] args) {
        String result = NumberFormat.getPercentInstance().format(0.1);
        // method chaining
        System.out.println(result);
    }
}

Reading Input

获取终端数字输入

package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // a field is like a variable in a class.
        System.out.print("Age: ");
        byte age = scanner.nextByte();
        System.out.println("you are " + age);
    }
}

获取终端字符串输入

package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Name: ");
        // String name = scanner.next().trim();
        // scanner.next()只会获取终端输入的第一个token并返回,而scanner.nextLine()会获取终端输入的整行字符串,即所有token.
        // 其中的trim只是一个去掉字符串两端多余空格的方法.
        String name = scanner.nextLine().trim();
        System.out.println("you are " + name);
    }
}

Project (Mortgage Calculator)
package com.Shayne;

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;

public class Main {
//Mortgage Caculator
    public static void main(String[] args) {
        final byte MONTHS_IN_YEAR = 12;
        final byte PERCENT = 100;
        Scanner scanner = new Scanner(System.in);
        System.out.print("Principal: ");
        int principal = scanner.nextInt();
        System.out.print("Annual Interest Rate: ");
        float annualInterest = scanner.nextFloat();
        float monthlyInterest = annualInterest / PERCENT / MONTHS_IN_YEAR;
        System.out.print("Period (Years): ");
        byte years = scanner.nextByte();
        int numberOfPayments = years * MONTHS_IN_YEAR;
        NumberFormat mortgageFormatted = NumberFormat.getCurrencyInstance(Locale.US);
        double mortgage = (principal * monthlyInterest * Math.pow(1 + monthlyInterest, numberOfPayments)) / (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);
        String result = mortgageFormatted.format(mortgage);
        System.out.print("Mortgage: ");
        System.out.println(result);
    }
}


//Principal: 100000
//Annual Interest Rate: 3.92
//Period (Years): 30
//Mortgage: $472.81
Comparison operators

logical operators

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int temperature = 22;
        boolean isWarm = temperature > 20 && temperature < 30;
        System.out.println(isWarm);
    }
}

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        boolean hasHighIncome = false;
        boolean hasGoodCredit = true;
        boolean isEligible = hasHighIncome || hasGoodCredit;
        System.out.println(isEligible);
    }
}

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        boolean hasHighIncome = false;
        boolean hasGoodCredit = true;
        boolean hasCriminalRecord = false;
        boolean isEligible = (hasHighIncome || hasGoodCredit) && !hasCriminalRecord;
        System.out.println(isEligible);
    }
}

IF 语句
package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        System.out.print("temperature: ");
        Scanner scanner = new Scanner(System.in);
        int temp = scanner.nextInt();
        if (temp > 30){
            System.out.println("It's a hot day");
            System.out.println("Drink plenty of water");
        }
        else if (temp >20)
            System.out.println("It's a nice day");
        else
            System.out.println("It's cold");
    }
}

​ Simplified If statement

​ 1.

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int income = 120_000;
        boolean hasHighIncome;
        if (income > 100_000)
            hasHighIncome = true;
        else
            hasHighIncome = false;
    }
}

​ 2.

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int income = 120_000;
        boolean hasHighIncome = false;
        if (income > 100_000)
            hasHighIncome = true;
    }
}

​ 3.

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int income = 120_000;
        boolean hasHighIncome = (income > 100_000);
    }
}
// 第三种方式最好
IF 小训练
package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        System.out.print("Number: ");
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
		// 将条件最苛刻的放在最上面
        if (number % 5 == 0 && number % 3 == 0)
            System.out.println("FizzBuzz");
        else if (number % 5 == 0)
            System.out.println("Fizz");
        else if (number % 3 == 0)
            System.out.println("Buzz");
        else
            System.out.println(number);
    }
}

三元运算符
package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int income = 120_000;
        String className = income > 100_000 ? "First" : "Economy";
        System.out.println(className);
    }
}

Switch 语句

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        String role = "admin";
        switch (role) {
            case "admin":
                System.out.println("You're an admin");
                break;

            case "moderate":
                System.out.println("Yoy're an moderator");
                break;

            default:
                System.out.println("You're a guest");
        }
    }
}

package com.Shayne;

public class Main {

    public static void main(String[] args) {
        int role = 1;
        switch (role) {
            case 1:
                System.out.println("You're an admin");
                break;

            case 2:
                System.out.println("Yoy're an moderator");
                break;

            default:
                System.out.println("You're a guest");
        }
    }
}
FOR 循环
package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++)
            System.out.println("Hello World " + i);
    }
}

While 循环
package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";
        while (!input.equals("quit")){
            System.out.print("Input: ");
            input = scanner.next().toLowerCase();
            System.out.println(input);
        }
    }
}

Do-While 循环
package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";
        do {
            System.out.print("Input: ");
            input = scanner.next().toLowerCase();
            System.out.println(input);
        } while (!input.equals("quit"));
    }
}

Break and Continue语句
package com.Shayne;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";
        while (true){
            System.out.print("Input: ");
            input = scanner.next().toLowerCase();
            if (input.equals("pass"))
                continue;
            if (input.equals("quit"))
                break;;
            System.out.println(input);
        }
    }
}

For-each-loop
package com.Shayne;

public class Main {

    public static void main(String[] args) {
        String[] fruits = {"Apple", "Mango", "Orange"};
        // for-loop
        for (int i = 0; i < fruits.length; i++)
            System.out.println(fruits[i]);
        // for-each-loop
        for (String fruit: fruits)
            System.out.println(fruit);
    }
}

加入条件的Mortgage Calculator
package com.Shayne;

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;

public class Main {
    //Mortgage Caculator
    public static void main(String[] args) {
        final byte MONTHS_IN_YEAR = 12;
        final byte PERCENT = 100;
        int principal = 0;
        float monthlyInterest = 0;
        int numberOfPayments = 0;
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.print("Principal: ");
            principal = scanner.nextInt();
            if (principal >= 1000 && principal <= 1_000_000)
                break;
            System.out.println("Enter a value between 1000 and 1000000");
        }
        while (true) {
            System.out.print("Annual Interest Rate: ");
            float annualInterest = scanner.nextFloat();
            if (annualInterest >= 1 && annualInterest <= 30) {
                monthlyInterest = annualInterest / PERCENT / MONTHS_IN_YEAR;
                break;
            }
            System.out.println("Enter a value between 1 and 30.");
        }
        while (true) {
            System.out.print("Period (Years): ");
            byte years = scanner.nextByte();
            if (years >=1 && years <= 30) {
                numberOfPayments = years * MONTHS_IN_YEAR;
                break;
            }
            System.out.println("Enter a value 1 and 30.");
        }
        NumberFormat mortgageFormatted = NumberFormat.getCurrencyInstance(Locale.US);
        double mortgage = (principal * monthlyInterest * Math.pow(1 + monthlyInterest, numberOfPayments)) / (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);
        String result = mortgageFormatted.format(mortgage);
        System.out.print("Mortgage: ");
        System.out.println(result);
    }
}

方法
package com.Shayne;

public class Main {
    //Mortgage Caculator
    public static void main(String[] args) {
        greetUser("Shayne", "Chen");
    }
    public static void greetUser(String firstName, String lastName){
        System.out.println("Hello " + firstName + " " + lastName);
    }
}
package com.Shayne;

public class Main {
    //Mortgage Caculator
    public static void main(String[] args) {
        String message = greetUser("Shayne", "Chen");
        System.out.println(message);
    }
    public static String greetUser(String firstName, String lastName){
        return "Hello " + firstName + " " + lastName;
    }
}
加强版MortgageCalculator
package com.Shayne;

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;

public class Main {
    //Mortgage Caculator
    final static byte MONTHS_IN_YEAR = 12;
    final static byte PERCENT = 100;
    public static void main(String[] args) {

        int principal = (int) readNumber("Principal: ", 1000, 1_000_000);
        float annualInterest = (float)readNumber("Annual Interest Rate: ", 1, 30);
        byte years = (byte) readNumber("period (Years): ", 1, 30);

        printMortgage(principal, annualInterest, years);
        printPaymentSchedule(principal, annualInterest, years);

    }

    private static void printPaymentSchedule(int principal, float annualInterest, byte years) {
        System.out.println("nPAYMENT SCHEDULEn----------------");
        for (int month = 1; month <= years * MONTHS_IN_YEAR; month++){
            String balance = NumberFormat.getCurrencyInstance(Locale.US).format(calculateBalance(years, principal, annualInterest, month));
            System.out.println(balance);
        }
    }

    private static void printMortgage(int principal, float annualInterest, byte years) {
        String mortgage = NumberFormat.getCurrencyInstance(Locale.US).format(calculateMortgage(principal, annualInterest, years));
        System.out.println("nMORTGAGEn--------");
        System.out.println("Monthly Patments: " + mortgage);
    }

    public static double readNumber(String prompt, double min, double max)  {
        Scanner scanner = new Scanner(System.in);
        double value;
        while (true) {
            System.out.print(prompt);
            value = scanner.nextFloat();
            if (value >= min && value <= max)
                break;
            System.out.println("Enter a value between" + min + " and " + max);
        }
        return value;
    }

    public static double calculateMortgage(
            int principal,
            float annualInterest,
            byte years) {

            float monthlyInterest = annualInterest / PERCENT / MONTHS_IN_YEAR;
            short numberOfPayments = (short) (years * MONTHS_IN_YEAR);
            double mortgage = (principal * monthlyInterest * Math.pow(1 + monthlyInterest, numberOfPayments)) / (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);

            return mortgage;
    }

    public static double calculateBalance(byte years, int principal, float annualInterest, int numberOfPaymentMade) {

        float monthlyInterest = annualInterest / PERCENT / MONTHS_IN_YEAR;
        short numberOfPayments = (short) (years * MONTHS_IN_YEAR);

        double balance = principal
                * (Math.pow(1 + monthlyInterest, numberOfPayments) - Math.pow(1 + monthlyInterest, numberOfPaymentMade))
                / (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);

        return balance;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号