Java精典面试题推荐二(大家可以把自己的答案附上)
***此题以考察基础为准,北京的笔试题,可能有人做过
题:写一个程序,解析如下格式的字符串,并将解析的数字序列打印出来。
字符串格式举例: -1~2, 3~3, 5~10, 7~15x3
~ 代表数字的范围, -1~2 代表从-1开始到2之间的所有数字。 3~3 代表从3开始到3的所有数字,也就是3
7~15x3代表从7开始,最大为15,每隔3个数字取一个数字,所以7~15x3代表 7 10 13 三个数字。
所以上面的举例字符串代表 -1 0 1 2 3 5 6 7 8 9 10 7 10 13 这样的数字序列
个人答案,只作简单验证,仅供参考;希望大家能够把自己好的方法算法与出来共同学习,尤其也在面试的朋友.
import java.util.StringTokenizer;
public class StringTokenTest {
public static void test1(StringTokenizer st1) {
int[] arr = new int[2];
int i = 0;
while (st1.hasMoreTokens()) {
arr[i] = Integer.parseInt(st1.nextToken());
i++;
}
if (arr[0] > arr[1]) {
System.out.println("范围有误,请查证!");
return;
}
for (int j = arr[0]; j <= arr[1]; j++) {
System.out.print(j + " ");
}
}
public static void test2(StringTokenizer st1) {
int[] arr = new int[3];
int i = 0;
while (st1.hasMoreTokens()) {
arr[i] = Integer.parseInt(st1.nextToken());
i++;
}
if (arr[0] > arr[1]) {
System.out.println("范围有误,请查证!");
return;
}
for (int j = arr[0]; j <= arr[1] ; j++) {
if (j % arr[2] == 0) {
System.out.print(j + " ");
}
}
}
public static void main(String[] args) {
String str = "-1~3,2~2,3~7*3,12~25*4";
StringTokenizer st = new StringTokenizer(str, ",");
while (st.hasMoreTokens()) {
String s = s
相关文档:
上文谈到了适配器模式,要是Targer目标角色有20方法,那么每个适配器都要去实现接口中这些方法,这样做感觉太费劲。 这种情况下,可以考虑实现个默认适配器,然后实际的实现目标角色接口的类可以集成这个默认适配器,然后重写默认实现的方法即可。 一、原理图 ......
原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
解题思路:
很明显,这是一个递归算法。我们可以排列将这6个数按从小到大的顺序排一下,如果是1,2,3,4,5,6,那么会有1 ......
import java.io.*;
public class IoTest
{
public static void main(String[] args)
{
String s;
s=calculate();
System.out.println(s);
}
static String calculate()
{
StringBuffer sb=new StringBuffer("");
try{
FileReader re ......