一道关于截取字符串的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。
因此这道题相对容易了一些。。
代码如下:
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我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(); } }
相关文章推荐
- Java面试题之一---------字符串截取(字节分配)(编码)
- Java截取字符串的面试题
- Java---练习(面试题) :字符串截取(1)
- 一道关于字符串操作的面试题
- 一道关于java线程的面试题
- 由字符串反转(使用递归)引申出来一道Java面试题
- 由字符串反转(使用递归)引申出来一道Java面试题
- Java---练习(面试题) :字符串截取(2-最终版)
- java基础面试题:怎样截取字符串
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 关于截取字符串的java笔试(面试)题简化代码实现
- 关于一道java面试题的学习感触
- Thinking in java中关于Exception的一道面试题.
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 关于JAVA的一道面试题
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 关于java 截取特定字符串的探索
- Java---练习(面试题) :字符串截取(2-最终版)
- java基础面试题:怎样截取字符串
- Java(面试题):字符串截取