Java的输出题,为什么输出的是51

参照Java的输出 API的定义如下:'d' 整数 结果被格式化为十进制整数
'o' 整数 结果被格式化为八进制整数
'x', 'X' 整数 结果被格式化为十六进制整数
'e', 'E' 浮点 结果被格式化为用计算机科学记数法表示嘚十进制数
'f' 浮点 结果被格式化为十进制数
'g', 'G' 浮点 根据精度和舍入运算后的值使用计算机科学记数形式或十进制格式对结果进行格式化。
'a', 'A' 浮點 结果被格式化为带有效位数和指数的十六进制浮点数

printprintlnprintf的区别print将它的参数显示在命令窗口并将输出光标定位在所显示的最后一个字符之後。
println 将它的参数显示在命令窗口并在结尾加上换行符,将输出光标定位在下一行的开始
printf是格式化输出的形式。


可以看到用print输出i后,沒有换行用println输出的结果直接在print输出语句后面,而输出println后换行了,所以用printf输出时在第二行

我们再来看printf“i的值为%d,j的值为%f”这个字符串中的"%d"变為i的值了,而"%f"变为了j的值了!
这里"%d"的意思是一个int值的占位符,"%f"为一个double 或float值的点位符这个变量的参数在后面提供。注意的是实参名必须按顺序排不然就会错了。而且类型也要相符如果我们把语句改为System.out.printf("i的值为%d,j的值为%f", j,i);//i和j位置反了
这时就有错了因为"%d"对应的参数变为j,"%f"对应的變为i了而j是double的,与"%d"是int形的不一致所以有错了。
还有"%s"是一个字符串值的点位符的意思"%c"是一个字符值的点位符的意思。
可能读者还会问為什么j输出变成了5.000000?那是因为double是默认有6位小数的(这个可能和系统电脑有关有的不是6位吧)但是如果你想只要输出两位小数行不行?可以啊!只要改下语句就行了!
这里的"%.2f"的意思是输出两位小数点如果想输出三位那就"%.3f"。
说到这里你会发现原来printf也很有用的这样可以控制输絀的格式。
再学多点知识吧将代码改为以下:

原来在"%"与"d"之间加个数5的意思是输出5个占位符。默认向右对齐这样的输出是很有用的,比洳你想输出一个表格因各个数大小不一,有的5位有的4位这样输出的的表格结果就对不齐了。如果将输出结果全部为同一样的占位符数那样就对齐了。呵呵
除了"%d"可以这样外,别的也可以读者不防试试。会有很多收获的

我们再试着将代码改一下:

哈哈,原来"d"的意思是輸出5个占位符,如果数字不足5的话就有左边以0相补

  1. 下列哪些类型能被throw语句抛出

【解】注意Error也是可以被throw的,只是通常Error出现程序就中断了我们并不会去捕获。

2.编程:给定两个字符串A,B(只包含26个英文字母)输出所有公共嘚最长子字符串(如果出现重复子串,则输出多次)

输入包括两行每行为一个连续字符串(大小写敏感)

输出包括多行,每行为扫描到嘚最长公共子串按照该子串在字符串A(即第一行输入字符串)中出现的先后次序输出

解答:与最长公共子序列一样,最长公共子串也可鉯采用动态规划(打表)进行求解举个例子:X = bab,Y = caba打表如下:
西安尚学堂练习09.17|Java的输出编程笔试面试题

第一行、第一列初始化为 0;

若对應的两个字符相等,格子的值设为左上角的值加 1

若对应的两个字符不相等,直接置 0

3.编程:在一个整数的数组中删除另外一个整数数组Φ的元素,并保留原数组的次序

  1. 第一行是被删除的整数列表(记为列表A)每个整数之间使用空格分隔

  2. 第二行是需要删除的整数列表(记為列表B),每个整数之间使用空格分隔

输出只有一行即列表A中删除列表B元素后的整数列表,输出元素按照在列表A中的次序排列每个整數之间使用空格分隔

解答思路:本题较简单,获取第一行时用一个list保存;获取第二行时,将每个数从list中删除最后输出即可。

我要回帖

更多关于 Java的输出 的文章

 

随机推荐