面试试题001-截取字符串
程序员文章站
2022-05-24 07:49:20
...
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我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); } } } }
上一篇: ArrayList的克隆问题
下一篇: 用分治法实现二叉查找
推荐阅读
-
PHP 高级面试题 - 如果没有 mb 系列函数,如何切割多字节字符串
-
面试题【002字符串替换空格】精妙解法
-
【JAVA面试题】对于字符串操作的常用函数
-
关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】
-
Leetcode刷题记录——面试题48. 最长不含重复字符的子字符串
-
20200329-剑指offer-面试题48. 最长不含重复字符的子字符串(滑动窗口)
-
面试题:编写一个截取字符串的函数
-
【字符串】面试题之键值对(”key = valude”)字符串
-
面试题-给定一段文本,找到包含字段串a,同时剔除包含字符串b的行,然后使用“:”分割取所有列,最后对结果排序,统计每个值出现的次数
-
字符串intern方法与大厂面试题解