`

字符串截取

阅读更多
写一个方法,获得一个字符串的子串,比如第一个参数“AB汉字CDEF”,第二个参数是4,5,那么返回的结果应该是“AB汉”。如果第二个参数是3的话,那么输出应该是“AB”,即汉字不能只取半个

答:完整的方法如下:public static String getSubString(String str, int subStrLen) {
if (str == null || subStrLen <= 0) {
   return "";
}       
byte[] strBytes = str.getBytes(); // 字节码数组

if ( subStrLen > strBytes.length) {
   subStrLen = strBytes.length;
}    
String subStr = new String(strBytes, 0, subStrLen);
// 最后一个如果只取到汉字低字节(它也占一个字符长度),那么最后的字符肯定与原来的不同,那么就放弃最后一个字符
if (subStr.charAt(subStr.length() - 1) != str.charAt(subStr.length() - 1)) {
   subStr = subStr.substring(0, subStr.length() - 1);
}
return subStr;
}
总之,JAVA字符使用的是Unicode码,不论是否汉字或字母长度都为一,如果要求是汉字占两个字节长度,可以先转换为byte数组,再取得长度,即str.getBytes().length;



<script> 
//截取字符串 包含中文处理
//(串,长度,增加...)
function subString(str, len, hasDot)
{
    var newLength = 0;
    var newStr = "";
    var chineseRegex = /[^\x00-\xff]/g;
    var singleChar = "";
    var strLength = str.replace(chineseRegex,"**").length;
    for(var i = 0;i < strLength;i++)
    {
        singleChar = str.charAt(i).toString();
        if(singleChar.match(chineseRegex) != null)
        {
            newLength += 2;
        }    
        else
        {
            newLength++;
        }
        if(newLength > len)
        {
            break;
        }
        newStr += singleChar;
    }
    
    if(hasDot && strLength > len)
    {
        newStr += "...";
    }
    return newStr;
}
alert(subString("字符串截取测试 www.jb51.net 是一个收藏精品学习资料的网站",4,true));
</script>
分享到:
评论

相关推荐

    rf.rar_RF 字符串截取_Rf字符串比较_rf字符串切割

    RF(Regular Expression,正则表达式)是一种强大的文本处理工具,广泛应用于字符串截取、比较和切割等任务。在这个"rf.rar"压缩包中,我们看到涉及到RF字符串处理的三个关键知识点:RF字符串截取、RF字符串比较以及...

    C语言实现字符串截取

    根据给定的信息,本文将详细解释两个用于C语言中字符串截取的方法:`subStringByIndex` 和 `subStringByPointer`。这两个函数都属于自定义实现,它们提供了灵活且实用的功能来帮助开发者轻松地从一个字符串中提取所...

    Delphi 字符串截取函数

    ### Delphi字符串截取函数详解 在Delphi编程语言中,字符串处理是极其常见的操作,尤其是在数据处理、文本分析和用户界面设计等场景下。Delphi提供了丰富的字符串处理函数,其中包括了截取、拼接、删除、插入等功能...

    高效中英文字符串截取方法

    ### 高效中英文字符串截取方法 #### 知识点概述 本文将详细介绍一种用于高效截取中英文混合字符串的方法。该方法适用于处理大量数据(例如10万条记录),能够在极短的时间内(例如1秒)完成所需的操作。这种方法...

    VC++字符串截取总结

    VC++字符串截取总结 VC++字符串截取是指在VC++中对字符串进行截取、提取和操作的技术。本文将对VC++字符串截取进行总结,包括CString类的常用方法、char*字符串的截取方法等。 CString类的截取方法 CString类是...

    C#常用字符串截取函数

    C#开发中经常用到一些字符串截取的函数,文档中含有大多数的函数

    C#字符串截取

    ### C#字符串截取知识点详解 #### 一、概述 在C#编程中,字符串处理是非常常见且重要的任务之一。特别是在需要对字符串进行截取、替换等操作时,掌握多种方法能够帮助开发者更加灵活地应对不同的场景。本文将详细...

    较复杂的字符串截取函数SenFe_Cut

    "盛飞字符串截取函数",即SenFe_Cut,是为了解决特定字符串截取问题而设计的一个自定义函数。这个函数的主要功能是从左向右根据用户指定的首尾字符串来截取中间的内容,适用于那些内置字符串截取函数无法满足需求的...

    unix字符串截取(总结)

    ### Unix字符串截取方法详解 在Unix环境下进行字符串截取是一项常见的操作需求,尤其是在处理文本文件、日志分析等场景中。本文将详细介绍几种常用的字符串截取方法:`cut`命令、`sed`命令以及`expr`命令,并通过...

    字符串截取(C)

    在C语言中,字符串截取是一项基础且重要的操作,它涉及到字符串、数组和指针等基础知识。本教程将深入探讨如何在C语言中实现字符串截取,并提供一个名为`cut_string`的示例代码。 首先,我们需要理解字符串在C语言...

    java 字符串截取工具类

    java 字符串截取工具类java 字符串截取工具类

    js 字符串截取

    使用一个指定的分隔符把一个字符串分割存储到数组 使用您选择的分隔符将一个数组合并为一个字符串 返回字符串中匹配子串的第一个字符的下标

    substring截取字符串 字符串截取方法

    Substring截取字符串字符串截取方法 Substring截取字符串字符串截取方法是计算机编程中一种常见的操作,它指的是从字符串中提取某一段子字符串,在不同的编程语言中有不同的实现方式。下面将介绍Substring截取字符...

    字符串截取小例子Delphi源代码..rar

    这个"字符串截取小例子Delphi源代码..rar"压缩包文件显然包含了一些使用Delphi编写的示例代码,这些代码展示了如何在Delphi程序中进行字符串截取操作。在Delphi中,处理字符串是一项基本且重要的任务,因为字符串...

    php字符串截取.pdf

    #### 二、GB2312中文字符串截取 **1.1 GB2312字符串截取函数** ```php function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for ($i = 0; $i $strlen; $i++) { if (ord(substr($...

    字符串截取字符的超强方法【引用】

    根据给定的信息,本文将详细解释一种用于字符串截取的强大方法。此方法通过定义一个名为 `GetContent` 的函数来实现不同的截取需求。该函数接收四个参数:目标字符串 `str`、起始标记 `start`、结束标记 `last` 和一...

    C++ 字符串截取(strtok)

    ### C++ 中使用 `strtok` 进行字符串截取详解 在C++编程语言中,处理字符串是一项常见的任务。特别是在需要对字符串进行分隔、提取特定子串的情况下,掌握有效的字符串操作技巧至关重要。本文将详细介绍如何使用 `...

    日期 字符串截取 格式化 标签

    对于字符串截取,可能需要用到`substring()`方法或者正则表达式,比如`String.split()`。 格式化则是将日期时间对象转换成特定格式的字符串,便于阅读或存储。例如,将日期时间对象转换为"YYYY年MM月dd日 HH:mm:ss...

    截取指定长度的字符串

    "截取指定长度的字符串"这个主题涉及到的是如何从一个字符串中提取出特定长度的部分。这在处理用户输入、数据展示、信息提取等多个场景中都非常常见。接下来,我们将深入探讨这个知识点。 首先,让我们明确什么是...

Global site tag (gtag.js) - Google Analytics