您的位置:首页 > 职场人生

一道关于截取字符串的java面试题

2009-12-17 18:05 399 查看
下午看面试题时,看到一道关于截取字符串的。题目是这样的:

编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

难就难在判断汉字上。。

这个网站列了所有的ascii:http://www.weste.net/tools/ascii.asp,也就是说符合0<x<255(x为一个字符)都是字母以及其他的一些特殊字符。

在Character这个类中有一个静态方法,是可以判断是不是数字的。

isDigit(Char ch):判断是不是数字,返回类型为boolean。

因此这道题相对容易了一些。。

代码如下:

public class SplitString {
public static void main(String[] args) {
SplitString ss = new SplitString();
String s=ss.getString("test中dd文fasjaslkjdfalsjf师的看见发lkjd",5);
System.out.println(s);
}
public String getString(String s,int n) {
int index = 0;    //定义游标位置
StringBuffer ss = new StringBuffer();
for(int i = 0 ; i < n; i++){
if(s.charAt(index)<255 && s.charAt(index)>0 || Character.isDigit(s.charAt(index))){
ss.append(s.charAt(index));     //如果当前字符不输于字母或者是数字,则添加到结果。
index++;
}else{
ss.append(s.charAt(index));    //如果当前字符是汉字,则添加到结果中,游标向前移动一位。
index++;
i++;
}
}
return ss.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: