`
zsnlovewl
  • 浏览: 172868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

应该输出为“我ABC”而不是“我ABC+汉的半个”

 
阅读更多
import java.io.UnsupportedEncodingException;
public class StrSpliter {
/**
* 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,
* 输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
*
* @param args
*/
public static void main(String args[]) {
splitIt("我abc的DEF是大法师的", 12);
}
public static void splitIt(String str, int bytes) {
int hanZiBytes = 0;
int interceptBytes = 0;
byte strByte[] = null;
try {
strByte = str.getBytes("GBK");//GBK汉字占用2个字节
//strByte = str.getBytes("UTF-8");//UTF-8汉字占用3个字节

} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("未截取的字符串长度为:" + strByte.length);
for (int i = 0; i < bytes; i++) {
if (strByte[ i ] < 0) {
hanZiBytes++;
}
}
//汉字的字节数为偶数时,直接按总字节截取,汉字的字节数为奇数时 总字节数-1
interceptBytes = (hanZiBytes % 2 == 0) ? bytes : bytes - 1;
/*if(hanZiBytes % 3 == 0){//UTF-8所用的判断
interceptBytes=bytes;
}else if(hanZiBytes % 3 == 1){
interceptBytes=bytes-1;
}else if(hanZiBytes % 3 == 2){
interceptBytes=bytes-2;
}*/
try {
System.out.println("截取结果:" + new String(strByte, 0, interceptBytes, "GBK"));
//System.out.println("截取后:" + new String(strByte, 0, interceptBytes, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
<!--v:3.2-->
分享到:
评论

相关推荐

    java 面试题 经典收藏

    给定某年某日,算出星期几? 公元1年1月1日为星期一给定字符串,找出出现次数... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

    java面试过程当中遇到的一些题目

    Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,... 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

    java面试题(JAVA代码与编程).pdf

    但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC 汉 DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 2、可能会让你写一段Jdbc连 Oracle的程序,并实现数据查询. 3、ORACLE 大数据...

    java面试题(面试 宝典)

    Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 ... 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。 14

    JAVA按字节截取字符串(适用于Unicode)

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

    拆分带中文字符串.zip

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

    二十一道面试程序.txt

    但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。 12.Java编程,打印昨天的当前时刻 13.文件读写,实现一个计数器; 14.用java代码实现冒泡...

    AutoWrite:Nuke 中的自动输出路径创建

    #自动写入 写入节点的半自动输出路径。... 从这条路径中,我们可以看到我有一个名为“testproj”的项目,它有一个缩写为“abc”的序列,并且在该序列中有一个名为“abc123”的镜头。 我正在制作该镜头的复

    你必须知道的495个C语言问题

    3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...

    常见面试算法题目

    1. 1 - 100, 找出质数 ...不能打印出半个汉字 6. 设计4个线程,其中两个线程每次对j增加1,另外两个线程每次对j减少1 7. 给你List A,已知,如 3,1,4,9,5```````100. 让你求出里面的最大值与最小值。

    《你必须知道的495个C语言问题》

    1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main的正确...

    最新JAVA编程题全集_50题及答案

    写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba import java.util.ArrayList; import java.util.List; public class NumTest { public static void main(String[] args) { String s="ABCD";...

    java面试题

    但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 113 84.8. 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一...

    最新Java面试宝典pdf版

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

    Java面试宝典2010版

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

    Java面试笔试资料大全

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

    Java面试宝典-经典

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

Global site tag (gtag.js) - Google Analytics