1.代码片段:
System.out.println(words.length); String text = "Welcom to Java contest";String[] words = text.split("\s");System.out.println(words.length);
请问编译运行的结果是什么?
A 0
B 1
C 4
D 编译出错
E 运行时抛出一个异常
这题选D
2.如下代码:
public class Test {
private int a;
public int b;
protected int c;
int d;
public static void main(String[] args) {
Test test = new Test();
int a = test.a++;
int b = test.b--;
int c = test.c++;
int d = test.d--;
System.out.println(a + " - " + b + " - " + c + " - " + d); }
}
请问哪个说法是正确的?
A 编译错误,因为变量a、b、c和d没有被初始化
B 编译错误,因为变量a无法被访问
C 编译成功并输出0 - 0 - 0 - 0
D 编译成功并输出1 - -1 - 1 - -1
这题选C
3.System.out.format("Pi is approximately %d.", Math.PI);
为什么运行时抛出异常?
4.根据Java命名规范,为什么 drawPicture 不可作为变量名?
谢谢各位了。
System.out.println(words.length);有两个,一个在words定义之前使用,错误。阿ilei
(1)main也是个该类的函数,可以访问同类的任何类型变量。(2)++,--等均放在数值后面,均是先用或++或--(3)整数类型初始缺省值为0
Math.PI是double类型,不能用%d输出(不能像C语言一样自动截断)
drawPicture可以用作变量名,已试过。
追问第一题代码应该是这样
String text = "Welcom to Java contest";
String[] words = text.split("\s");
System.out.println(words.length);
二楼已解释,\s是非法的转义字符
第一题代码应该是这样
String text = "Welcom to Java contest";
String[] words = text.split("\s");
System.out.println(words.length);
哦,这样啊
首先split方法需要的参数是正则表达式,\s在正则表达式中表示的是‘空白符号’
然而在java中“\”是转义字符,比如\n \r \\;直接‘\s’在java中是不合法的。
所以应该是‘\\s’ ,这样就转成了需要的‘\s’正则式了。
第一题代码应该是这样
String text = "Welcom to Java contest";
String[] words = text.split("\s");
System.out.println(words.length);
二楼应该是正解