java拾趣,Adding....
2006-04-11 17:50 Jeff 阅读(491) 评论(0) 编辑 收藏 举报今天看到的题目,或者我以前犯过错误,或者我觉得这道题目给我启示-,-!
1.如何比较3个字符串或者更多的字符串是否相等?
谁都能想到的答案:
if ( (s1.equals(s2) )&& ( s2.equals(s3) )
另一种方法:
String[] s = {"one", "two", "two"};
List list = Arrays.asList(s);
Set set = new HashSet(list);
System.out.println(list.size() == set.size());
用到了collection的知识
2.如何不借用第三个变量对换两个变量的值?
好像以前同学问过我这个问题的:
A = A + B
B = A - B
A = A - B
另一种方法:
a = a ^ b;
b = a ^ b; ((a ^ b) ^ b == a)
a = a ^ b; ((a ^ b) ^ a == b)
//这边我晕了,用记事本写代码运行,会报不支持类型错误,用eclipse却完全可以@_@
3.数组初始注意点:
正确:
1.String[] ss = {"11","222","33333"};
2.String[] ss = new String[] {"11","222","33333"};
3.String[] ss;
ss = new String[] {"11","222","33333"};
错误:
String[] ss;
ss = {"11","222","33333"};
嘿嘿,上次就是这样赋值的,一直报错。
4.
OXO|OOX|OOO|
O+O|O+O|X+O| -> 第一坐标组,表示字母 C
OOO|OOO|OOO|
------------
OXO|OOO|XOO|
O+O|O+O|O+O| -> 第2坐标组 ?
OOO|OOX|OOO|
------------
OXO|OOO|OOO|
O+O|O+O|O+O| -> 第3坐标组 ?
OOO|XOO|OXO|
------------
OXO|OOO|OXO|
O+O|O+O|O+O| -> 第4坐标组 ?
OOO|XOO|OOO|
------------
OXO|OOO|OOO|
O+O|O+O|O+O| -> 第5坐标组 ?
OOO|OOX|XOO|
------------
OXO|OOO|OXO|
O+O|O+O|O+O| -> 第6坐标组 ?
OOO|OXO|OOO|
------------
OXO|OOO|OOO|
O+O|O+O|O+O| -> 第7坐标组 ?
OOO|OOX|OOX|
------------
OXO|OOO|OOO|
O+O|O+O|O+O| -> 第8坐标组 ,表示字母e
OOO|XOO|OXO|
------------
C_ _ _ _ _ _ e
Answer:
分别代表一个八进制的ASCII码。
第一组坐标: 103(八进制) 就是大写的C字母
第八组坐标: 145(八进制) 就是小写的e字母
由这两组的提示我们可以推断出0-7的图案:
OOX|
O+O| ====>表示0
OOO|
OXO|
O+O| ====>表示1
OOO|
XOO|
O+0| ====>表示2
OOO|
OOO|
X+0| ====>表示3
OOO|
OOO|
O+0| ====>表示4
XOO|
OOO|
O+0| ====>表示5
OXO|
OOO|
O+0| ====>表示6
OOX|
OOO|
O+X| ====>表示7
OOO|
其他图案表示什么就知道了。
5.判断是否为偶数:
public static boolean isOdd(int i) {
return i % 2 == 1;
}
上面程序没有考虑int的取值范围。改为如下:
public static boolean isOdd(int i) {
return i % 2 != 0;
}
上面的方法效率低,有更高效的方法:
public static boolean isOdd(int i) {
return (i & 1) != 0;
}