欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试试题001-截取字符串

程序员文章站 2022-05-24 07:50:38
...
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 
package myjava;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SplitString {

    public static void main(String[] args) {
        while (true) {
            BufferedReader sr = new BufferedReader(new InputStreamReader(System.in));
            String str = null;
            try {
                str = sr.readLine();          //读取输入的字符串,输入以空格分隔的字串和截取的字节数
                String[] strobject = str.split(" ");
                int number = Integer.parseInt(strobject[1]);
                str = strobject[0];
                byte[] buf = str.getBytes();
                if (buf[number - 1] < 0) {    //判断最后一个字节是否是汉字的首字节
                    number++;
                }
                String newstr = new String(buf, 0, number);
                System.out.println(newstr);
            } catch (IOException ex) {
                Logger.getLogger(SplitString.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}