面试试题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); } } } }
上一篇: 面试试题002--数字母的个数
下一篇: 论文复现_显示屏装配尺寸测量
推荐阅读
-
字符串加数字为何结果是数字(面试题)
-
便利蜂算法面试题:字符串是否包含另一个字符串的位置
-
PHP 高级面试题 - 如果没有 mb 系列函数,如何切割多字节字符串
-
面试题【002字符串替换空格】精妙解法
-
【JAVA面试题】对于字符串操作的常用函数
-
关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】
-
Leetcode刷题记录——面试题48. 最长不含重复字符的子字符串
-
20200329-剑指offer-面试题48. 最长不含重复字符的子字符串(滑动窗口)
-
面试题:编写一个截取字符串的函数
-
【字符串】面试题之键值对(”key = valude”)字符串