`

全角半角混在截取固定位数

    博客分类:
  • java
阅读更多

package zkktest;

import java.io.UnsupportedEncodingException;


public class test
{

    public static void main(String[] args) {
        String inStr = "新2鮮";
        System.out.println("old Str:" + inStr + "," + inStr.getBytes().length);
        System.out.println("0 Str:" + substringByCount(inStr, 0));
        System.out.println("1 Str:" + substringByCount(inStr, 1));
        System.out.println("2 Str:" + substringByCount(inStr, 2));
        System.out.println("3 Str:" + substringByCount(inStr, 3));
        System.out.println("4 Str:" + substringByCount(inStr, 4));
        System.out.println("5 Str:" + substringByCount(inStr, 5));
        System.out.println("6 Str:" + substringByCount(inStr, 6));
        System.out.println("7 Str:" + substringByCount(inStr, 7));
        System.out.println("8 Str:" + substringByCount(inStr, 8));
       
        String inStr1 = "2新鮮";
        System.out.println("old Str:" + inStr1 + "," + inStr1.getBytes().length);
        System.out.println("0 Str:" + substringByCount(inStr1, 0));
        System.out.println("1 Str:" + substringByCount(inStr1, 1));
        System.out.println("2 Str:" + substringByCount(inStr1, 2));
        System.out.println("3 Str:" + substringByCount(inStr1, 3));
        System.out.println("4 Str:" + substringByCount(inStr1, 4));
        System.out.println("5 Str:" + substringByCount(inStr1, 5));
        System.out.println("6 Str:" + substringByCount(inStr1, 6));
        System.out.println("7 Str:" + substringByCount(inStr1, 7));
        System.out.println("8 Str:" + substringByCount(inStr1, 8));
       
        String inStr2 = "新鮮2";
        System.out.println("old Str:" + inStr2 + "," + inStr2.getBytes().length);
        System.out.println("0 Str:" + substringByCount(inStr2, 0));
        System.out.println("1 Str:" + substringByCount(inStr2, 1));
        System.out.println("2 Str:" + substringByCount(inStr2, 2));
        System.out.println("3 Str:" + substringByCount(inStr2, 3));
        System.out.println("4 Str:" + substringByCount(inStr2, 4));
        System.out.println("5 Str:" + substringByCount(inStr2, 5));
        System.out.println("6 Str:" + substringByCount(inStr2, 6));
        System.out.println("7 Str:" + substringByCount(inStr2, 7));
        System.out.println("8 Str:" + substringByCount(inStr2, 8));
        
    }


    private static String substringByCount(String str, int count) {
        StringBuffer buff = new StringBuffer();
        if (StringUtils.isNotEmpty(str)) {
            if (count > 0) {
                char c;
                int sumCount = 0;
                for (int i = 0; i < str.length(); i++) {
                    c = str.charAt(i);
                    sumCount += String.valueOf(c).getBytes(Charset.forName('UTF-8')).length;
                    if (sumCount > count) {
                        break;
                    }
                    buff.append(c);
                }
            }
        }
        return buff.toString();
    }

}

分享到:
评论

相关推荐

    对全角半角字符串的处理

    通过以上示例代码可以看出,全角半角字符的转换在实践中具有一定的实用价值,尤其是在处理包含多种字符类型的文本时。理解并掌握这一转换方法有助于开发者更好地处理各种语言环境下的文本数据。

    前后台实现精确截取指定长度字符串(考虑全角半角)

    根据提供的文件信息,本文将详细解释如何在前后端开发中实现对字符串进行精确截取,同时考虑到全角和半角字符的区别。这个问题在处理多语言环境下的文本时尤为重要,因为不同语言中的字符宽度可能有所不同,这直接...

    C#字符串截取固定长度的方法

    ### C#字符串截取固定长度的方法 在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术...

    截取位数_day7ps_Labview截取位数实现数据稳定_

    在IT领域,尤其是在数据分析和信号处理中,"截取位数"是一种常见的处理技术,用于减少噪声、提高信号质量或优化资源利用率。本篇将详细探讨"Labview截取位数实现数据稳定"这一主题,结合给定的标题和描述,我们将...

    js截取固定长度字符

    js获得字符真实长度,如果长度超过len值,js截取固定长度字符

    TIA博途-截取浮点数-自定义小数位数-全局FC库文件-V17版本-GF-截取浮点数-自定义小数点后位数.zip

    本篇将详细讲解如何在TIA博途V17版本中,利用全局功能块(FC,Function Block)库文件实现对浮点数的截取,并自定义小数点后的位数。 首先,浮点数在PLC编程中常用于处理需要较高精度的数值运算。在TIA博途V17中,...

    delphi 实现截取字符串中中文+英文混合截取

    在Delphi编程环境中,处理中文和英文混合的字符串截取是一项常见的任务,特别是在涉及到文本处理、数据解析或者用户界面展示时。由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就...

    Android 带小数点的字符串格式化为固定位数

    在Android开发中,数据的格式化是一个非常重要的环节,特别是在显示数字时,为了保持数据的一致性和可读性,我们经常需要将带有小数点的字符串格式化为固定位数。这个工具类就是为了满足这样的需求而设计的。下面将...

    截取中英混合的固定个数表格回显办法

    根据给定的信息,本文将详细解释如何在Java中处理中英文混合字符串的截取问题,尤其是在需要固定长度显示的情况下。 ### 一、问题背景 在实际应用开发中,经常需要处理包含中文和英文字符的字符串。例如,在一个...

    ASP截取固定长度字符串

    ### ASP截取固定长度字符串知识点解析 在ASP(Active Server Pages)编程中,处理文本数据是常见的需求之一。尤其是在新闻发布系统、文章摘要生成等场景下,经常需要将一段较长的文字内容截取为指定长度的字符串,...

    java实现中英文混合字符截取方法

    这种方法主要用于解决在 Java 中截取字符串时遇到的问题,即在截取中英文混合字符串时如何避免汉字被截半个。 在 Java 中,字符串是以 Unicode 编码方式存储的,每个字符占用 2 个字节。因此,在截取字符串时需要...

    超实用c#按字节截取长度(原创)

    根据给定文件的信息,本文将深入探讨如何在C#中实现一种高效的按字节截取字符串的方法,尤其针对包含单字节与双字节混合字符的情况。这种方法特别适用于处理中文等双字节字符与英文等单字节字符混合的情况。 ### 一...

    简单的拍照截取固定区域

    在移动应用开发中,"简单的拍照截取固定区域"是一个常见的需求,特别是在处理身份证、驾驶证等证件信息时。这个功能允许用户通过手机摄像头精确地捕捉证件的特定区域,确保拍摄到的信息清晰、完整,便于后续的识别和...

    西门子1200实现小数按位截取

    "西门子1200实现小数按位截取"这个主题主要关注如何在PLC程序中对Real类型的数值进行特定小数位数的截取操作。在实际应用中,可能会遇到需要控制小数精度的情况,比如在财务计算或者精确控制过程中。此时,我们需要...

    C++中英混合字符串截取

    题目中的问题聚焦于如何正确地截取一个中英混合的字符串,确保在截取过程中不会将汉字字符截断。这个问题涉及到字符编码、字符串处理以及对Unicode的理解。下面将详细解释相关知识点。 首先,我们要理解在C++中处理...

    字符串按照指定的字节数来截取

    字符串是由字符组成的序列,而“字符串按照指定的字节数来截取”这个话题,就是指如何在字符串中提取固定字节数的部分。在不同的编程语言中,都有相应的函数或方法来实现这一功能。 在Python中,可以使用内置的`...

    ios-截取固定大小的圆形图片.zip

    总之,"ios-截取固定大小的圆形图片.zip"项目提供了一个实用的例子,教导开发者如何在iOS应用中实现自定义头像功能,包括图像裁剪、贝塞尔路径使用以及可能的滚动视图操作。通过深入理解这些概念和技术,开发者可以...

    C#截取指定长度的方法

    去年的时候由于工作需要,写了个用C#截取指定长度的方法,当时颇费了一番周折,因为想错了方向。 例如要截取字符串"我是1个中国人",取3位长度,那得到的结果是"我",如果取6位长度,得到的结果是"我是1",因为汉字...

    C# 按照字节长度截取字符串

    在C#编程中,有时我们需要根据字节长度来截取字符串,这可能是因为要处理不同编码格式的数据,或者为了适应特定的传输限制。本篇将详细介绍如何在C#中按照字节长度截取字符串,并结合正则表达式进行操作。 首先,...

    c语言小数点后截任意位函数

    浮点运算中,小数点后数据太多有时会导致计算溢出, 本人自编写了一个可任意截取小数点后n位的函数.程序简单实用. 程序中没有考虑负数的四舍五入. 如果需要作如下改动便可: if(f&gt;0) { f = (long)(f+0.5); } else { f...

Global site tag (gtag.js) - Google Analytics