`
junli0411
  • 浏览: 136176 次
  • 来自: ...
社区版块
存档分类
最新评论

java截取包含汉字字符串

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


class SplitString {
    private String str;

    private int byteNum;

    public SplitString() {
    }

    public SplitString(String str, int byteNum) {
        this.str = str;
        this.byteNum = byteNum;
    }

    public void splitIt() {

        byte bt[] = str.getBytes();
        System.out.println("Length of this String ===>" + bt.length);
        if (byteNum > 1) {
            if (bt[byteNum] < 0) {
                pBinInt("bt[byteNum]", bt[byteNum]);
                System.out.println("bt[" + byteNum + "] = " + bt[byteNum]);// 1
                System.out
                        .println("bt[" + byteNum + "] = " + (int) bt[byteNum]);// 2
                System.out.println("bt[" + byteNum + "] = "
                        + (bt[byteNum] & 0x000000FF));// 3
                System.out.println("bt[" + byteNum + "] = "
                        + (bt[byteNum + 1] & 0XFF));// 4
                String substrx = new String(bt, 0, --byteNum);
                System.out.println(substrx);
            } else {
                String substrex = new String(bt, 0, byteNum);
                System.out.println(substrex);
            }

        } else {
            if (byteNum == 1) {
                if (bt[byteNum] < 0) {
                    String substr1 = new String(bt, 0, --byteNum);
                    System.out.println(substr1);
                } else {
                    String subStr2 = new String(bt, 0, byteNum);
                    System.out.println(subStr2);
                }
            } else {
                System.out.println("输入错误!!!请输入大于零的整数:");
            }
        }
    }

    static void pBinInt(String s, int i) {
        System.out.println(s + ", int: " + i + ", binary: ");
        System.out.print("   ");
        for (int j = 31; j >= 0; j--)
            if (((1 << j) & i) != 0)
                System.out.print("1");
            else
                System.out.print("0");
        System.out.println();
    }
}

class TestSplitString {
    public static void main(String args[]) {
        String str = "我abc的DEFe";
        int num = 6;
        SplitString sptstr = new SplitString(str, num);
        sptstr.splitIt();
    }
}


分享到:
评论
1 楼 livemumu 2008-12-18  
没有判断高位溢出。。。你把测试数据num改为50看看

相关推荐

    java中截取带汉字的字符串

    解决截取字符串中带有汉字的问题,以防截取时汉字截取一般出现错误情况

    关于java按字节截取带有汉字的字符串的解法

    关于java按字节截取带有汉字的字符串的解法.不错的一个程序。我也是从高手那拿来的,觉得不错,传上来给感兴趣的朋友学习学习。

    java按字节截取带有汉字的字符串的解法(推荐)

    下面小编就为大家带来一篇java按字节截取带有汉字的字符串的解法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

    [待删除]字符串截取 - 中英文

    java字符串截取 - 中英文操作系统处理字符汉字

    Java字符串常用方法

    判断字符串为空 判断Email有效性 判断身份证号码有效性 判断手机号码有效性 判断是否含有特殊字符 ...截取字符串从开始到给定长度的一段 判断字符串是否以某个前缀开头 判断字符串是否以某个后缀结尾

    字符串 截取

    指定截取字节数,截取字符串,但是不能出现半个汉字的情况,例如: 字符串"喊sd中d王",长度2byte为:喊,长度3byte为:喊s,长度4byte为:喊sd,长度5byte为:喊sd,长度6byte为:喊sd中

    拆分带中文字符串.zip

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

    java 截取字符串(判断汉字)

    jsp截取中文字符串 len为字节长度

    Java 按照字节来截取字符串的代码(不会出现半个汉字)

    Java 按照字节来截取字符串的工具,不会出现半个汉字。一个中文两个字节,一个英文字符只占 1 个字节** 1. 通常我们用于前端显示的时候,防止标题过长

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回“国a”。这里 要求按字节截取,一个英文字符当一个字节,一个中文字符当两...

    Java算法之对字符串的各种处理(二)

    核心思路:输入一个字符串和字节数,输出按字节数截取字符串, 其中要保证汉字不能被截半个字节,设计思路就是判断汉字占几个字节,通过string.valueof.getBytes()方法获取字符的字节数,之后遍历判断不要超过指定的...

    JAVA中截取字符串substring用法详解

    主要介绍了JAVA截取字符串 substring方法,要的朋友可以参考下

    用javascript实现截取字符串包含中文处理的函数

    1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符。... 返回值 一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字

    java字符串处理类

    判断一个字符是Ascill字符还是其它字符(如汉,日,...得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1 截取一段字符的长度,不区分中英文,如果数字不正好,则少取一个字符位 生成随机字符串

    javascript截取字符串小结

    本文总结介绍了三种使用Javascript截取字符串的方法,同时也总结了两种截取中文字符串的办法,分享一下。 1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符。 语法 ...

    java 面试题 经典收藏

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

    2Java SE(上).doc

    1)int length():该方法用来获取当前字符串的字符数量,无论中文还是英文每个字符都是1个长度 2)int indexOf(String str):查看给定字符串在当前字符串中的位置。 首先该方法会使用给定的字符串与当前字符串进行...

Global site tag (gtag.js) - Google Analytics