- System类的输入流的使用:类变量in,可接收用户的输入信息,是标准的输入流实例对象。Scanner是Java的扫描器类,可从输入流中读取指定类型的数据或字符串。本例使用Scanner类封装了输入流对象,并用nextLine()方法从输入流用户输入的整行文本字符串。
import java.util.Scanner;
public class InputCode {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
System.out.println("your id is "+line.length()+" 位数");
}
}
2.重定向输出流实现程序日志:System类中的out成员变量是Java标准输出流,用它来输出调试信息,被定义为final,无法重新赋值,但是可以通过setOut()方法来设置新的输出流。本例把它指向一个文件输出流,从而实现日志功能。
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class RedirectOutputStream {
public static void main(String[] args) {
try {
PrintStream out = System.out;//保存原输出流
PrintStream ps = new PrintStream("./log.txt");//创建文件输出流
System.setOut(ps);//设置使用新的输出流
int age = 25;
System.out.println("设置年龄为25");
String words = "forever yang";
System.out.println("设置座右铭");
String info = "这是个" + age + "岁的少年" + ",座右铭是" + words;
System.out.println("整合输出为:" + info);
System.setOut(out);//设置使用原有输出流
System.out.println("运行完毕,请看log文件");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
setOut()方法用于重新分配Stream类的标准输出流。声明如下:
public static void setOut(PrintStream out)参数out指新的PrintStream输出流对象。
3. List item
自动类型转换与强制类型转换
public class TypeConversion {
public static void main(String[] args) {
byte b=127;
char c='W';
int i=3333;
short s=23561;
long l=400000L;
float f=3.14159F;
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+f));
System.out.println("累加double:" + (b+c+s+i+f+d));
System.out.println("long强制类型转换为int:" + (int) l);
System.out.println("int强制类型转换为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:427108
累加float:27111.14
累加double:27165.663625
long强制类型转换为int:400000
int强制类型转换为short:6784
double强制类型转换为int:54
short强制转换为char:尉
*/
//所有整数运算都被自动转化为int类型后再运算,所有浮点数都被转为double类型再运算。
4.字符串加密解密
把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,再把加密后的字符串作为输入内容,异或运算会把加密后的字符串还原为原有的字符串
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("输入字符串或需要解密的字符串:");
String password = scan.nextLine();
char[] array = password.toCharArray();
for (int i = 0; i < array.length; i++) {
array[i] = (char) (array[i]^20000);//对数组每个元素进行异或运算
}
System.out.println("结果如下:");
System.out.println(new String(array));
}
}
5. 用三元运算符?判断输入的数是奇数偶数
import java.util.Scanner;
public class ParityCheck {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("输入一个数:");
long number=scan.nextLong();
String check = (number % 2 == 0) ? "偶数" : "奇数";
System.out.println(check);
}
}
%运算符可以实现数据分页,如通过计算奇偶数的方法把数组交叉分成俩个数组,还可限制数字范围,如(N%5==0)可以限制数字N在0-4以内。
代码例子来自《Java web开发实战1200例》