前面一课说了简单的整型数据和浮点型数据,但是没有说char字符类型,今天我们来说说char字符类型。
【Java Char型】
在Java中提供了字符类型,与C/C++类似,Java中字符是经过编码的;Exp: 编码值==65的字符是’A’;
在Java中,使用的是Unicode编码格式。通常情况下,我们认为Unicode是16 bit的编码规则。
但是很多童鞋们,还是不明白这个东西,我自己也有点迷糊。下面是我摘录的部分度娘知道的回答:
如果按照编码规则来看,这个赋值是兼容的。 输出的时候系统是根据“数值”的类型来判断的,正如上面说的,当用
System.out.println(numchar+4);
这里会输出的是什么呢?我们可以看一下:
/*This program try to test the CHAR data type*/public class CharTest{ public static void main(String[] args){char charTestVar=4;System.out.println(charTestVar+4);}}
输出如下所示:
而下面的程序段:
/*This program try to test the CHAR data type*/public class CharTest{ public static void main(String[] args){char charTestVar=4;System.out.println(charTestVar+4);System.out.println(charTestVar);}}
输出如下所示:
这是为什么呢?我们知道在表达式计算过程中:会进行类型转换,通常是向数值范围方向大的转;因此第一段代码输出是8,而第二段代码输出的是8和四方形。
【Java 控制台输入流】
在Java类库中System.out 类在java.lang包中定义,这是一个默认包含的包。而在Java中输出数据不是这样的,在需要从控制台输入数据的时候,则需要
引用Java提供的类库包,这个与C语言一样(C语言通过系统提供的库函数实现输入和输出)。
在Java中用Scanner可以实现控制台数据的输入,Scanner是一个类,通过类的构造函数构造对象,然后通过类的方法(类似C++中的成员函数)来实现
数据的读取。
构造Scanner对象语法: Scanner objectIdentify=new Scanner(System.in);
在使用这个类的时候需要导入: java.util包,其语法如下:
import java.util.*;
这里需要注意一点:因为import是完整的java语句,因此后面的分号不能少。
下面我们看一段简单的代码如何实现数据的输入:
/*This program test scaner */import java.util.*;public class ScanerIn{ public static void main(String[] args){Scanner GetData=new Scanner(System.in);System.out.print(“Please enter you name:”);System.out.println(“You name is:”+GetData.nextLine());}}
这段代码执行的结果如下所示:
Scanner对象提供了很多不同的方法来输入不同的数据类型:
1、Scanner (InputStream In)
用给定的输入流创建一个Scanner对象
2、String nextLine()
读取输入的下一行内容,并保存为String对象
3、String next()
读取输入的下一个单词,单词以空白符分隔,空格、制表符算空白符(blank charecter)
4、int nextInt()
读取输入的下一个整型数值
5、doublet nextDouble()
读取输入的下一个浮点数值
6、boolean hasNext()
检测输入流中是否还有其他单词
7、boolean hasNextInt()
检测输入流中是否还有整数
8、boolean hasDouble()
检测输入流中是否还有浮点数值
下面我来测试一下这写类的方法:
/*This program test scaner */import java.util.*;public class ScanerIn{ public static void main(String[] args){Scanner GetData=new Scanner(System.in);System.out.print(“Please enter you name:”);System.out.println(“You name is:”+GetData.nextLine());System.out.print(“Now we have got you name,Can we get you age:”);System.out.println(“Your age is:”+GetData.nextInt());System.out.print(“Can you show the expect salary:”);System.out.println(“Your expect salary is:”+GetData.nextDouble());if(GetData.hasNext())System.out.println(“You hava finish you input data!!!”);}}
程序执行过程如下所示:
这里我有一点迷惑?那就要if子句执行过程和我想象的不一样。
【Java 控制台密码输入】
如上面的测试一样,我们知道,在console输入中利用Scanner对象输入的时候,是明文输入的,有时候我们需要输入密码,很显然,密码不能用明文
进行输入,否则就失去了保密的作用;考虑这一点,Java提供了另外一种输入方式来实现密码的输入。
在Java中利用Console类实现密码的输入。其使用方法如下:
//首先利用Console类构造一个对象
Console CodeInput=System.console
String UserName=CodeInput.readLine();
String PassWord=CodeInput.readPassword();
实例代码如下所示:
Console CodeInput=System.console();String UserName;char[] Password;UserName=CodeInput.readLine(“Enter your name:”);Password=CodeInput.readPassword(“Enter the password:”);
这段代码执行过程如下图所示:
这样的话,明文就不显示,并且Java继承了Unix/Linux的特征在输入密码的时候不显示*或者其他掩码符号。
这里有一点需要注意:如果要使用Console类,必须导入java.io.Console; 否则不能使用;同时object.readPassword()方法返回的值是数组类型,不能用String对象
存储,否则会报错。如下所示:
【Java 读取文件内容】
和其他程序设计语言一样,Java也提供了读写文件的机制,与C语言不一样的是,香港虚拟主机,C语言读写文件非常麻烦,而在Java中通过前面所介绍的Scanner对象就可以实现文件的读写。
在使用前需要构造Scanner文件对象。如下所示:
Scanner FileIn=new Scanner(new File(“test.txt”));
这样就构造了一个文件输入输出对象,通过Scanner文件对象就可以进行文件的读写。
为了防止文件读写“指针”无指向,在文件读写语句中,必须进行异常捕捉;否则在编译的过程中会报没有进行异常处理。
因为异常类型的处理我还没有深入了解,因此这里就不多说了,香港服务器,以后有机会再说。
下面我没来看一下文件读取的代码:
在乎的应该是沿途的风景以及看风景的心情。