JAVA企业面试题精选 Java SE 100-105

3.101.将某网页评论提交给后台的字符串str中,如果包含有”\”,”<”,”>”,”=”四种符号的,过滤掉以后防止系统被执行恶意代码.写出你的Java代码

String str = "<<楼主说的非常对!\\和谐社会,科学上网>=."
参考答案:
public class Q101{
    //过滤特殊字符
    public static String StringFilter(String str) throws PatternSyntaxexception{
        String regEx = "{=\\\\<>}";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
        return m.replaceAll("").trim();
    }

    public static void main(String[] args){
        String str = "<<楼主说的非常对!\\和谐社会,科学上网>=.";
        System.out.println(str);
        System.out.println(StringFilter(str));
    }
}

3.102.现在给你一个新一代身份证号,默认为18位号码;如果该号码是15的话,请在第6位后面加上”19”,并且在末尾加上”X”;如果是18位,则不变

参考答案:
import java.util.Scanner;

public class Q102{

    public static String change18(String cardId){
        StringBuilder sb = new StringBuilder(cardId);
        return sb.insert(6,"19").append("X").toString();
    }

    public static void main(String[] args){
        System.out.println("请输入身份证号:");
        Scanner scan = new Scanner(System.in);
        String idCard = scan.next();
        if(idCard.length() == 15){
            idCard = change18(idCard);
        }
        System.out.println(idCard);
    }
}

3.103.编写一个方法

  给你一个字符串数组String s[] = {“A”,”B”,”C”,”D”,”E”,”F”},请随机生成一个数,比如:生成的数为2,则输出数组中随机两个元素的组合B,E或者A,C等;生成数为3,就为三个随机元素组合
参考答案:
public class Q103{

    public List<String> group(int count,String[] str){
        List<String> list = new ArrayList<String>();
        for(int i = 0; i < str.length; i++){
            String result = "";
            result = str[i];
            for(int j = i + 1; j < str.length; j++){
                for(int h = 0; h < count - 1; h++){
                    if((j + h) < str.length){
                        result += str[j + h];   
                    }
                }
                if(result.length() == count){
                    list.add(result);
                }
                result = str[i];
            }
        }
        return list;
    }

    public static void main(String[] args){
        String[] s = {"A","B","C","D","E","F"};
        List<String> list = new Q103().group(3,s);
        System.out.println(list);
    }
}

3.104.请编写一个对于Java例外处理的完整的程序

参考答案:

  本案例以自定义异常为例说明Java异常处理的完整过程.
  首先新建自定义异常类NotNumberException,该异常可以在某个字符串不为数字组成的情况下抛出,代码如下;

public class NotNumberException extends Exception{

    public NotNumberException(){
        super();
    }


    public NotNumberException(String message, Throwable cause){
        super(message, cause);
    }

    public NotNumberException(String message){
        super(message);
    }

    public NotNumberException(Throwable cause){
        super(cause);
    }
}

  然后,新建类ExceptionDemo,在类中添加parseInt方法,该方法用于将字符串转换为整数类型,当该字符串不是由数字组成时,使用throw抛出上面自定义的异常NotNumberException,并且在方法声明除,使用throws声明抛出该异常,然后在main方法中调用parseInt方法时,使用try-catch处理异常.代码如下:

public class ExceptionDemo{

    public static void main(String[] args){
        //如果调用了有异常抛出的方法,就必须处理异常.
        try{
            int i = parseInt("32145");
            System.out.println(i);
        } catch (NotNumberException e){//异常的处理
            System.out.println(e);
        }
    }
    /** 将字符串转换为整数值 */
    public static int parseInt(String str) throws NotNumberException{//声明异常的抛出
        int sum = 0;
        for(int i = 0; i < str.length(); i++){
            char c = str.charAt(i);
            if(c < '0' || c > '9'){
                throw new NotNumberException("不是数字呀!");//异常抛出点
            }
            sum = sum * 10 + (c - '0');
        }
        return sum;
    }
}

3.105.编写自定义异常,处理输入字符串abc抛出异常,其他不抛出

参考答案:

  定义异常MyException,当输入字符串为abc时,抛出该异常.代码如下:

public class MyException extends Exception{

    private String errorMsg;

    public MyException(String errorMsg){
        this.errorMsg = errorMsg;
    }

    public String getErrorMsg(){
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg){
        this.errorMsg = errorMsg;
    }

    @Override
    public String toString(){
        return errorMsg;
    }
}

  定义TestException类,在main方法中接收控制台输入,当输入字符串为abc时,抛出异常MyException.代码如下:

import java.util.scanner;

public class TestException{

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        if(str.equals("abc")){
            throw new MyException("输入的字符串不正确!");
        }   
    }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值