HOME/Articles/

Java运算符中的一些注意点,以及Scanner的介绍

Article Outline

Java运算符中的一些注意点,以及Scanner的介绍

<!--more-->

一,运算符的一些注意点

字符和int相加

        char a = 'A';
        int b = 1;

        int res1 = a + b;
        System.out.println(res1); // 66
//        java中字符和int相加 ,  选取字符的值来进行相加,  'A'为65,'a'为97, '0'为48
        System.out.println("----------");

字符串和int 相加

        int c = 10;
        String str = "Hello ";
        String res2 = str + c;
        System.out.println(res2); // Hello 10
//      字符串和int 相加  拼接为字符串
        System.out.println("----------");

        int num1 = 10;
        int num2 = 20;
        String str2 = " testStr ";
        System.out.println(str2 + num1 + num2); // testStr 1020
        System.out.println(num1 + num2 + str2); // 30 testStr
        System.out.println("----------");

+= 等赋值运算操作涉及隐式类型转换

        //关于 += 等赋值运算操作的时候,涉及到了隐式类型转换
        short s1 = 1; // s1 为short型
        s1 += 1; // 这时候加的1为int型  实际相当于(short)(s1 + 1);
        System.out.println(s1);
        System.out.println("----------");

&& 和 &的区别

        // && 和 &的区别

        int num3 = 10;
        int num4 = 20;
        System.out.println( (num3++ > 10) & (num4++ > 20) ); // false & false ===> false
        System.out.println(num3); // 11
        System.out.println(num4); // 21
        int num5 = 10;
        int num6 = 20;
        System.out.println( (num5++ > 10) && (num5++ > 20) ); // false && false ===> false
        System.out.println(num5); // 11
        System.out.println(num6); // 20
        // 可以看到结果是一样的,但是&把前后两项都进行了执行,而&&如果前面一项为false时,直接判断为false,后面的不进行执行
        System.out.println("----------");

二,使用Scanner获取键盘输入

简单使用

package com.DeeJay;

import java.util.Scanner; // 1.导入jdk中的Scanner包

public class ScannerDemo {
    public static void main(String[] args) {
        // 2.创建一个键盘录入对象
        Scanner sc = new Scanner(System.in);

        // 3.接收数据
        System.out.println("input a number: ");
        int inputNumber = sc.nextInt();

        // 输出结果
        System.out.println("the Number which u entered is: " + inputNumber);

        /*
         *     运行结果
         * input a number: 89 
         * the Number which u entered is: 89
         */
    }
}

sc.next()和sc.nextLine()

  • next():
    package com.DeeJay;
    

import java.util.Scanner; // 1.导入jdk中的Scanner包

public class ScannerDemo { public static void main(String[] args) { // 创建一个键盘录入对象 Scanner sc = new Scanner(System.in);

    // 接收数据
    System.out.println("input a String: ");
    String inputString = sc.next();
    // 输出结果
    System.out.println("the String which u entered is: " + inputString);

    /*
     *     运行结果
     * input a String: hello DeeJay
     * the String which u entered is: hello
     */
}

}

- nextLine():

package com.DeeJay;

import java.util.Scanner; // 1.导入jdk中的Scanner包

public class ScannerDemo { public static void main(String[] args) { // 创建一个键盘录入对象 Scanner sc = new Scanner(System.in);

    // 接收数据
    System.out.println("input a String: ");
    String inputString = sc.nextLine();
    // 输出结果
    System.out.println("the String which u entered is: " + inputString);

    /*
     *     运行结果
     * input a String: hello DeeJay
     * the String which u entered is: hello DeeJay
     */
}

}


#### next() 与 nextLine() 区别
- next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。

- nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。