目录

实例011:输出错误信息与调试信息

实例012:从控制台接收输入字符

实例013:重定向输出流实现程序日志

实例014:自动类型转换与强制类型转换

实例015:加密可以这样简单(位运算)

实例016:用三元运算符判断奇数和偶数

实例017:不用乘法运算实现 2 * 16(位移运算 更高效)

实例018:实现两个变量的互换(不借助第三个变量 异或运算 更高效)


实例011:输出错误信息与调试信息

package com.test_011;

public class Test_011 {
	public static void main(String[] args) {
		System.out.println("main()方法开始运行了");
		//输出一个错误信息
		System.err.println("在运行期间手动输出一个错误信息:");
		System.err.println("\t 该软件没有购买保险,请注意安全!");
		System.out.println("Test_011.main()");
		System.out.println("main()方法运行结束");
	}
}

每次运行结果都不同,错误信息位置随机。

实例012:从控制台接收输入字符

package com.test_011;

import java.util.Scanner;

public class Test_012 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);	//创建Scanner扫描器来封装System类的in输入流
		System.out.println("请输入字符串:");
		String str = sc.nextLine();
		System.out.println(str);
		sc.close();
	}
}

实例013:重定向输出流实现程序日志

System 类中的 out 成员变量是 Java 的标准输出流,程序常用它来输出调试信息。out 成员变量被定义为 final 类型的,无法直接重新赋值,但是可以通过 setOut() 方法来设置新的输出流。本实例利用该方法实现了输出流的重定向,把它指向一个文件输出流,从而实现了日志功能。程序运行后控制台提示运行结束信息,但是在运行过程中的步骤都保存到了日志文件中。

略难,以后懂了再来补充

实例014:自动类型转换与强制类型转换

package com.test_011;

public class Test_014 {
	public static void main(String[] args) {
		byte b = 127;
		char c = 'W';
		short s = 23561;
		int i = 3333;
		long L = 4000000L;
		float f = 3.1415926F;
		double d = 54.523;
		//低类型向高类型自动转换
		System.out.println("累加  byte 等于:" + b);
		System.out.println("累加  char 等于:" + (b+c));
		System.out.println("累加  short 等于:" + (b+c+s));
		System.out.println("累加  int 等于:" + (b+c+s+i));
		System.out.println("累加  long 等于:" + (b+c+s+i+L));
		System.out.println("累加  float 等于:" + (b+c+s+i+L+f));
		System.out.println("累加  double 等于:" + (b+c+s+i+L+f+d));
		//高类型到低类型的强制转换
		System.out.println("把 long 类型强制转换为 int:" + (int)L);
		//高类型到低类型转换会丢失数据
		System.out.println("把 long 类型强制转换为 short:" + (short)L);
		//实数转换成整数会舍弃小数部分
		System.out.println("把 double 类型强制转换为 int:" + (int)d);
		//整数到字符类型会获取对应编码的字符
		System.out.println("把 short 类型转换为 char:" + (char)s);
	}
}

运行效果:

累加  byte 等于:127
累加  char 等于:214
累加  short 等于:23775
累加  int 等于:27108
累加  long 等于:4027108
累加  float 等于:4027111.2
累加  double 等于:4027165.773
把 long 类型强制转换为 int:4000000
把 long 类型强制转换为 short:2304
把 double 类型强制转换为 int:54
把 short 类型转换为 char:尉

实例015:加密可以这样简单(位运算)

package com.test_011;

import java.util.Scanner;

public class Test_015 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要加密的字符串:");
		String str = sc.nextLine();					//获取用户输入
		char[] array = str.toCharArray();			//获取字符数组
		for(int i = 0; i < array.length; i++) {		//遍历数组
			array[i] = (char)(array[i] ^ 20000);	//对每个数组元素进行异或运算
		}
		System.out.println("加密或解密的结果如下");
		System.err.println(new String(array));		//输出结果
	}
}

程序最后使用的标准错误输出流不是用于输出错误信息,而是利用了其在 Eclipse控制台以红色显示的特征来突出显示。

实例016:用三元运算符判断奇数和偶数

package com.test_011;

import java.util.Scanner;

public class Test_016 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);	//创建输入流扫描器
		System.out.println("请输入一个整数:");
		long number = sc.nextLong();					//获取用户输入的整数
		String check = (number % 2 == 0)?"这个数是:偶数":"这个数是:奇数";
		System.out.println(check);
		sc.close();
	}
}

实例017:不用乘法运算实现 2 * 16(位移运算 更高效)

package com.test_011;

import java.util.Scanner;

public class Test_017 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		long number = sc.nextLong();
		System.out.println("你输入的数是:" + number);
		System.out.println("这个数字乘以2的运算结果为:" + (number<<1));		//左移一位 乘 2
		System.out.println("这个数字乘以4的运算结果为:" + (number<<2));		//左移两位 乘 4
		System.out.println("这个数字乘以8的运算结果为:" + (number<<3));		//左移两位 乘 8
		System.out.println("这个数字乘以16的运算结果为:" + (number<<4));		//左移两位 乘 16
	}
}

实例018:实现两个变量的互换(不借助第三个变量 异或运算 更高效)

package com.test_011;

import java.util.Scanner;

public class Test_018 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("获取变量A:");
		long a = sc.nextLong();
		System.out.println("获取变量B:");
		long b = sc.nextLong();
		System.out.println("A:" + a + " B:" + b);
		System.out.println("互换后的结果为:");
		a = a ^ b;
		b = a ^ b;
		a = a ^ b;
		System.out.println("A:" + a + " B:" + b);
	}
}