Java面试机试题(某日企银行)-编写一个过滤非法字符的算法(不使用正则表达式)

题目:将数组中的!#Hello*&-1$23非法字符过滤,最终结果为:Hello123

 

实现方式:

public class Test2 {
	
	public static void main(String[] main){
		
		//System.out.println("111");
		//要求:将数组中的!#Hello*&-1$23非法字符过滤,最终结果为:Hello123
		String str="!#Hello*&-1$23";
		System.out.println("过滤后:"+exFilterStr(str));
		
	}
	
	/**
	 * 过滤非法字符
	 * @param str  需要过滤的字符串
	 * @return
	 */
    public static String exFilterStr(String str){
    	//定义源数据,转入字符中如果数据在源数据中查找不到则为非法字符
    	String str2="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	//定义接收过滤好的新数据
    	String temp="";
    	char[] s=str.toCharArray();
		for (int i = 0; i < s.length; i++) {
			//System.out.println(str2.indexOf(s[i]));
			if(str2.indexOf(s[i])!=-1){  //根据获得过滤的某个元素到源数据进行查询,如若存在则返回正数,否则返回-1
				temp+=s[i];  
			}
		}
    	return temp;
    }
	
}

 

 

以上是我的个人实现思路,如果大家有更好的实现方式,欢迎分享和交流。

你可能感兴趣的:(面试)