【java面试题】字符串过滤输出目标结果字符串

分享一个初级小白的面试题解析。这是我面试一个8.5k的java开发工作时候的一个机试题(最后拿的offer)。

其中这道机试题淘汰了不少简历包装的新手,楼主使用第二种最简单的方法通过了这道机试题。

package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 神奇的阿浪
 * @author lang
 */
public class ObjectTest01 {
	public static void main(String[] args) {
		//java 一面试题,要求使用方法处理字符串,最后输出目标字符串结果
		String oldStr="-~2~5 0·!4   0·#$9- 4 d-*0";//原始字符串
		String resultStr="25040940";//控制台最后输出字符串
		
		//方法一 :使用ascii码
		String [] oldStrList=oldStr.split("");
		for (int i = 1; i < oldStrList.length; i++) {
			int num=oldStrList[i].getBytes()[0];
			if(num>47 && num <58)System.out.print(oldStrList[i]);
		}
		
		System.out.println();
		
		//方法二:使用java异常
		String [] oldStrList2=oldStr.split("");
		for (int i = 0; i < oldStrList2.length; i++) {
			try {
				Integer.parseInt(oldStrList2[i]);
				System.out.print(oldStrList2[i]);
			} catch (Exception e) {}
		}
		
		System.out.println();
		
		//方法三:使用正则表达式
		String regEx="[^0-9]";
		Pattern p=Pattern.compile(regEx);
		Matcher m=p.matcher(oldStr);
		System.out.println(m.replaceAll("").trim());
	}
}

最后输出:

25040940
25040940
25040940
 

猜你喜欢

转载自blog.csdn.net/qq_42252552/article/details/88577504