分享一个初级小白的面试题解析。这是我面试一个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