《数据转换与输入输出幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据转换与输入输出幻灯片.ppt(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 数据转换与输入输出第1页,共14页,编辑于2022年,星期六2数值型不同类型数据的转换数值型不同类型数据的转换u自动类型转换自动类型转换转换前的数据类型与转换后的类型兼容。转换前的数据类型与转换后的类型兼容。转换后的数据类型的表示范围比转换前的类型大。转换后的数据类型的表示范围比转换前的类型大。条件条件说明不同类型的数据进行运算时,需先转换为同说明不同类型的数据进行运算时,需先转换为同一类型,然后进行运算。转换从一类型,然后进行运算。转换从“短短”到到“长长”的优先的优先关系为:关系为:byteshortcharintlongfloatdoublebyteshortcharintlongfl
2、oatdouble u强制类型转换强制类型转换 如果要将较长的数据转换成较短的数据时(不安全),如果要将较长的数据转换成较短的数据时(不安全),就要进行强制类型转换。强制类型转换的格式如下:就要进行强制类型转换。强制类型转换的格式如下:(欲(欲转换的的数数据据类型)型)变量名量名第2页,共14页,编辑于2022年,星期六3字符串型数据与整型数据相互转换字符串型数据与整型数据相互转换 u字符串转换成数值型数据(见教材表字符串转换成数值型数据(见教材表3.73.7)u数值型数据转换成字符串数值型数据转换成字符串 在在JavaJava语言中,字符串可用加号语言中,字符串可用加号“+”来实现连接操来实
3、现连接操作。所以若其中某个操作数不是字符串,该操作在连作。所以若其中某个操作数不是字符串,该操作在连接之前会自动将其转换成字符串。所以可用加号来实接之前会自动将其转换成字符串。所以可用加号来实现自动的转换。现自动的转换。String MyNumber=String MyNumber=“1234.561234.56”;float MyFloat=Float.parseFloat(MyNumber);float MyFloat=Float.parseFloat(MyNumber);int MyInt=1234int MyInt=1234;/定定义整形整形变量量MyIntMyIntString My
4、String=+MyIntString MyString=+MyInt;/将将整型整型数数据据转换成了字符串成了字符串 第3页,共14页,编辑于2022年,星期六4 由键盘输入的数据,不管是文字还是数字,由键盘输入的数据,不管是文字还是数字,JavaJava皆视为皆视为字符串字符串,因此若是要由键盘输入数字则必须再经过转换。,因此若是要由键盘输入数字则必须再经过转换。输入字符串输入字符串 import java.io.*;import java.io.*;public class class_name /public class class_name /类名名称称 public static
5、void main(String args)throws IOExceptionpublic static void main(String args)throws IOException String str;String str;InputStreamReader inp InputStreamReader inp;inp=new InputStreamReader(System.in)inp=new InputStreamReader(System.in);BufferedReader buf;BufferedReader buf;buf=new BufferedReader(inp);
6、buf=new BufferedReader(inp);str=buf.readLine();str=buf.readLine();第4页,共14页,编辑于2022年,星期六5 这种输入数据的方式可变形为如下的格式这种输入数据的方式可变形为如下的格式 import java.io.*;import java.io.*;public class class_name /public class class_name /类名名称称 public static void main(String args)throws IOException public static void main(Strin
7、g args)throws IOException String str;String str;BufferedReader buf;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in);buf=new BufferedReader(new InputStreamReader(System.in);str=buf.readLine();str=buf.readLine();第5页,共14页,编辑于2022年,星期六6 由键盘输入的数据,不管是文字还是数字,由键盘输入的数据,不管是文字还是数字,Jav
8、aJava皆视为皆视为字符串字符串,因此若是要由键盘输入数字则必须再经过转换。,因此若是要由键盘输入数字则必须再经过转换。输入字符串输入字符串 /appA_3.java /appA_3.java 由由键盘输入字符串入字符串import java.io.*;/import java.io.*;/加加载java.iojava.io类库里的所有里的所有类public class App3_3public class App3_3 public static void main(String args)throws IOException public static void main(String
9、args)throws IOException BufferedReader buf;BufferedReader buf;String str;String str;buf=new BufferedReader(new InputStreamReader(System.in);buf=new BufferedReader(new InputStreamReader(System.in);System.out.print(System.out.print(请输入字符串;入字符串;););str=buf.readLine();str=buf.readLine();/将将输入的文字指定入的文字指定
10、给字符串字符串变量量strstr存放存放 System.out.println(System.out.println(您您输入的字符串是:入的字符串是:+str);/+str);/输出字符串出字符串 第6页,共14页,编辑于2022年,星期六7输入数值输入数值 由于从键盘输入的数据均被视为字符串,所以从键盘上输由于从键盘输入的数据均被视为字符串,所以从键盘上输入的数据,必须先利用表入的数据,必须先利用表3.73.7中所提供的方法进行转换后,中所提供的方法进行转换后,字符串的内容才会变成数值。字符串的内容才会变成数值。/App3_4.java /App3_4.java 由由键盘输入整入整数数im
11、port java.io.*;import java.io.*;public class App3_4public class App3_4 public static void main(String args)throws IOException public static void main(String args)throws IOException float num;float num;String str;String str;BufferedReader buf;BufferedReader buf;buf=new BufferedReader(new InputStreamR
12、eader(System.in);buf=new BufferedReader(new InputStreamReader(System.in);System.out.print(System.out.print(请输入一入一个个实数数:););str=buf.readLine();str=buf.readLine();/将将输入的文字指定入的文字指定给字符串字符串变量量strstr存放存放 num=Float.parseFloat(str);num=Float.parseFloat(str);/将将strstr转换成成floatfloat类型后型后赋给numnum System.out.pr
13、intln(System.out.println(您您输入的入的数数为:+num);+num);第7页,共14页,编辑于2022年,星期六8输入多个数据输入多个数据 /方法方法1 1:App3_5.java App3_5.java 由由键盘输入多入多个数个数据据import java.io.*;import java.io.*;public class App3_5public class App3_5 public static void main(String args)throws IOException public static void main(String args)throw
14、s IOException int num1,num2;int num1,num2;String str1,str2;String str1,str2;InputStreamReader in;InputStreamReader in;in=new InputStreamReader(System.in);in=new InputStreamReader(System.in);BufferedReader buf;BufferedReader buf;buf=new BufferedReader(in);buf=new BufferedReader(in);System.out.print(S
15、ystem.out.print(请输入第一入第一个数个数:););str1=buf.readLine();str1=buf.readLine();/将将输入的入的内内容容赋值给字符串字符串变量量str1str1 num1=Integer.parseInt(str1);num1=Integer.parseInt(str1);/将将str1str1转成成intint类型后型后赋给num1num1 System.out.print(System.out.print(请输入第二入第二个数个数:););str2=buf.readLine();str2=buf.readLine();/将将输入的入的内内容
16、容赋值给字符串字符串变量量str2str2 num2=Integer.parseInt(str2);num2=Integer.parseInt(str2);/将将str2str2转成成intint类型后型后赋给num2num2 System.out.println(num1+*+num2+=+(num1*num2);System.out.println(num1+*+num2+=+(num1*num2);第8页,共14页,编辑于2022年,星期六9为了简化输入操作,从为了简化输入操作,从Java SE 5Java SE 5版本开始在版本开始在java.utiljava.util类库中新增了一类
17、库中新增了一个类专门用于输入操作的类个类专门用于输入操作的类ScannerScanner,可以使用该类输入一个对象。,可以使用该类输入一个对象。import java.util.*;import java.util.*;public class class_name /public class class_name /类名名称称 public static void main(String args)public static void main(String args)Scanner reader=new Scanner(System.in);Scanner reader=new Scann
18、er(System.in);double num;double num;num=reader.nextDouble();num=reader.nextDouble();第9页,共14页,编辑于2022年,星期六10在该结构中用创建的reader对象调用nextDouble()方法来读取用户从键盘上输入的double型数据,也可用reader对象调用下列方法,读取用户在键盘上输入的相应类型的数据:nextByte()nextDouble()nextFloat()nextInt()nextLong()nextShort()next()nextLine()。第10页,共14页,编辑于2022年,星期
19、六11输入多个数据输入多个数据 为了简化输入操作,从为了简化输入操作,从Java SE 5Java SE 5版本开始在版本开始在java.utiljava.util类库中新增了类库中新增了一个类专门用于输入操作的类一个类专门用于输入操作的类ScannerScanner,可以使用该类输入一个,可以使用该类输入一个对象。对象。/方法方法2 2:App3_6.java App3_6.java 由由键盘输入多入多个数个数据据import java.util.*;/import java.util.*;/加加载java.utiljava.util类库里的所有里的所有类public class App3_
20、6public class App3_6 public static void main(String args)public static void main(String args)int num1;int num1;double num2;double num2;Scanner reader=new Scanner(System.in);Scanner reader=new Scanner(System.in);System.out.print(System.out.print(请输入第一入第一个数个数:););num1=reader.nextInt();num1=reader.next
21、Int();/将将输入的入的内内容做容做intint型型数数据据赋值给变量量num1num1 System.out.print(System.out.print(请输入第二入第二个数个数:););num2=reader.nextDouble();num2=reader.nextDouble();/将将输入的入的内内容做容做doubledouble型型数数据据赋值给变量量num2num2 System.out.println(num1+*+num2+=+(num1*num2);System.out.println(num1+*+num2+=+(num1*num2);第11页,共14页,编辑于20
22、22年,星期六12 上例中,上例中,readerreader对象还可以调用对象还可以调用nextByte()nextByte()、nextFloat()nextFloat()、nestDoublenestDouble()()、nextInt()nextInt()等。等。unext()next()被调用后,则等待用户在命令行输入数据并按被调用后,则等待用户在命令行输入数据并按回车键(或空格键、回车键(或空格键、TabTab键)确认。键)确认。unext()next()和和nextLine()nextLine()方法表示等待用户在键盘上输入一行文本,方法表示等待用户在键盘上输入一行文本,然后返回一
23、个然后返回一个StringString类型的数据。类型的数据。第12页,共14页,编辑于2022年,星期六13输入多个数据输入多个数据 利用利用ScannerScanner类,使用类,使用next()next()和和nextLine()nextLine()方法接收从键盘输入字方法接收从键盘输入字符串型数据。符串型数据。/App3_7.java /App3_7.java 由由键盘输入多入多个数个数据据import java.util.*;/import java.util.*;/加加载java.utiljava.util类库里的所有里的所有类public class App3_7public c
24、lass App3_7 public static void main(String args)public static void main(String args)String s1,s2;String s1,s2;Scanner reader=new Scanner(System.in);Scanner reader=new Scanner(System.in);System.out.print(System.out.print(请输入第一入第一个数个数:););s1=reader.nextLine();s1=reader.nextLine();/将将输入的入的内内容作容作为字符型字符型
25、数数据据赋值给变量量s1s1 System.out.print(System.out.print(请输入第二入第二个数个数:););s2=reader.next();s2=reader.next();/按按EnterEnter键后后next()next()方法方法将将回回车符和符和换行符去掉行符去掉 System.out.println(System.out.println(输入的是入的是+s1+s1+和和+s2);+s2);第13页,共14页,编辑于2022年,星期六14ScannerScanner类,类,next()next()和和nextLine()nextLine()方法区别方法区别unextnext():一定要读取到():一定要读取到有效字符有效字符后才可以结束输入,对后才可以结束输入,对输入有效字符之前遇到的空格键、输入有效字符之前遇到的空格键、TabTab键或键或 Enter Enter键等结束符,它将自动将其去掉,只有在输入有效字键等结束符,它将自动将其去掉,只有在输入有效字符之后,该方法才将其后输入的这些符号视为分隔符。符之后,该方法才将其后输入的这些符号视为分隔符。unextLinenextLine():结束符为():结束符为EnterEnter键,即返回键,即返回EnterEnter之前的所有字之前的所有字符。符。第14页,共14页,编辑于2022年,星期六
限制150内