本帖最后由 AndroidM 于 2015-4-12 22:27 编辑
题目一:写一个正则表达式,可以匹配手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666
- public class Test1
- {
- public static void main(String[] args) {
- String reg = "1[3458]\\d{4}(\\d){5}";
- String[] tel ={"13899833333",
- "13899833d333",
- "17899844533",
- "15899833333",
- "13899833333"};
- for(int i=0; i<tel.length; i++)
- System.out.println(tel[i]+" is "+checkTel(tel[i],reg));
- }
- static boolean checkTel(String tel,String reg) {
- return tel.matches(reg);
- }
- }
复制代码
题目二:编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
- public class Test2
- {
- public static void main(String[] args){
- String s;
- for(int i=1; i<=100; i++){
- if(Integer.toString(i).indexOf('7') == -1)
- System.out.print(i+" ");
- }
- }
- }
复制代码
题目三:编写程序,从一个字符串中按字节数截取一部分,但不能截取出半个中文,例如:从“hello枷哇”中截取2个字节是“he,截取6个字节也要是"hello",而不要出现半个中文
- public class Test3{
- public static void main(String[] args){
- String s = "hello枷哇";
- System.out.println(getByteChar(s,2));
- System.out.println(getByteChar(s,5));
- System.out.println(getByteChar(s,6));
- System.out.println(getByteChar(s,7));
- }
- static String getByteChar(String s, int num){
- byte[] by = s.getBytes();
- String des = null;
- int count = 0;
-
- if((s==null)||(by.length <= 0 )|| num <=0 )
- return "worng !!!";
- for(int i=0; i<num; i++)
- if(by[i] < 0)//当字节为中文字的一半时,值为负数
- count++;
- if(count%2 !=0)
- des = new String(by, 0,--num);
- else
- des = new String(by, 0, num);
- return des;
- }
- }
复制代码
代码中如果有错误,麻烦指出,大家一起交流,共同进步哈。。 |
|