Java 按照字节来截取字符串的代码(不会出现半个汉字)
/*
* Copyright 2012-2013 The Haohui Network Corporation
*/
package com.haohui.common.utils;
/**
* <pre>
* 字符串辅助工具
* </pre>
*
* @project baidamei
* @author cevencheng <cevencheng@gmail.com>
* @create 2012-11-30 下午2:42:56
*/
public class StringTool {
/**
*<b>截取指定字节长度的字符串,不能返回半个汉字</b>
* 例如:
* 如果网页最多能显示17个汉字,那么 length 则为 34
* StringTool.getSubString(str, 34);
*
* @param str
* @param length
* @return
*/
public static String getSubString(String str, int length) {
int count = 0;
int offset = 0;
char[] c = str.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] > 256) {
offset = 2;
count += 2;
} else {
offset = 1;
count++;
}
if (count == length) {
return str.substring(0, i + 1);
}
if ((count == length + 1 && offset == 2)) {
return str.substring(0, i);
}
}
return "";
}
}
相关推荐
-
Java截取特定两个标记之间的字符串实例
如有一串字符串: <abcd efg>higklmnopq<rstu vwxyz> java代码如下: public class StringTest { public static void main(String[] args) { String str = "<abcd efg>higklmnopq<rstu vwxyz"; System.out.println(str.substring(str.indexOf(">&q
-
java获取文件扩展名的方法小结【正则与字符串截取】
本文实例讲述了java获取文件扩展名的方法.分享给大家供大家参考,具体如下: 问题描述: 有一个String类型:String imageName = "zy.jpg"; 请问我如何截取"."后面的后辍名. 解决方法一:使用正则表达式 package csdnTest; import java.util.regex.*; public class CSDNTest { public static void main(String[] ss) { String s=
-
从字符串中截取等长字节的Java代码
在页面显示的时候,有时候文字无法显示完全,就只能显示部分文字,但是直接截取就只能截取等长字符串,英文和中文很难处理所以就写了下面方法,截取等长字符 复制代码 代码如下: public static void main(String[] args) { String str = "20120131:<回家>1你好么" ; System.out.println( subString(str , 10 ) ) ; } public static String subString
-
java 截取字符串(判断汉字)
复制代码 代码如下: /** * 截取字符串 len为字节长度 * @param str * @param len * @return * @throws UnsupportedEncodingException */ public static String getLimitLengthString( String str,int len){ try{ int counterOfDoubleByte = 0; byte[] b = str.getBytes("gb2312"); if
-
java 字符串截取的三种方法(推荐)
众所周知,java提供了很多字符串截取的方式.下面就来看看大致有几种. 1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.length;i<len;i++){ System.out.pri
-
Java截取字符串的方法
本文实例讲述了Java截取字符串的方法.分享给大家供大家参考.具体实现方法如下: public static void main(String args[]) { //以该字符第一次出现,开始截取 //String str="abc.def"; //String str="abc.def.sdfsdf.fsdfd.ddddd.ggggg.ttttt"; //String str1=str.substring(str.indexOf(".")+1,
-
java按字节截取带有汉字的字符串的解法(推荐)
由于接口使用的oracle字段长度为固定字节数,然后传进来的字符串估计比数据库字段的总字节数要大,那么截取小于数据库字节数的字符串. 自己参考网上的例子,整了个递归调用就可以了,因为截取的字符字节长度必须小与数据库的字节长度,即如果最后一个字符为汉字,那么只能去掉往前截取. /** * 判断传进来的字符串,是否 * 大于指定的字节,如果大于递归调用 * 直到小于指定字节数 ,一定要指定字符编码,因为各个系统字符编码都不一样,字节数也不一样 * @param s * 原始字符串 * @param
-
Java 按照字节来截取字符串的代码(不会出现半个汉字)
复制代码 代码如下: /* * Copyright 2012-2013 The Haohui Network Corporation */package com.haohui.common.utils; /** * <pre> * 字符串辅助工具 * </pre> * * @project baidamei * @author cevencheng <cevencheng@gmail.com> * @create 2012-11-30 下午2:42:56 */p
-
C#(.net)中按字节数截取字符串最后出现乱码问题的解决
前言 最近需要用到按字节数截取字符串.在网上找了很多方法. Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码.这样当然是乱码.尤其出现中文时候. 对这类数据处理当然要用统一的编码来处理.下面话不多说了,来一起看看详细的介绍吧 例子:1 string msg= Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(strcode)); 例子:2 string strc
-
SQL 截取字符串应用代码
SUBSTRING 返回字符.binary.text 或 image 表达式的一部分.有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型. 语法 SUBSTRING ( expression , start , length ) 参数 expression 是字符串.二进制字符串.text.image.列或包含列的表达式.不要使用包含聚合函数的表达式. start 是一个整数,指定子串的开始位置. length 是一个整数,指定子串的长
-
GetBody asp实现截取字符串的代码
'================================================== '函数名:GetBody '作 用:截取字符串 '参 数:ConStr ------将要截取的字符串 '参 数:StartStr ------开始字符串 '参 数:OverStr ------结束字符串 '参 数:IncluL ------是否包含StartStr '参 数:IncluR ------是否包含OverStr '============================
-
go语言按显示长度截取字符串的方法
本文实例讲述了go语言按显示长度截取字符串的方法.分享给大家供大家参考.具体分析如下: 根据显示长度截取字符串,之前php用的utf8编码,10个英文和10个汉字的显示长度差距太大,按字节截取的话又会出错出现截取半个汉字的情况,所以写了这两个函数. 这两天在折腾golang,所以就用golang重写了着连个函数.代码如下: 复制代码 代码如下: package main import ( "fmt" ) func main() { fmt.Println(show_st
-
C#实现根据字节数截取字符串并加上省略号的方法
本文实例讲述了C#按字节数截取字符串并在后面加上省略号...的方法,这是一个自定义的C#函数,函数的使用说明如下: <param name="origStr">原始字符串</param> <param name="endIndex">提取前endIdex个字节</param> <returns></returns> 函数代码如下: public static string GetSubStrin
-
asp截取字符串的两种应用 原创
1.纯粹的截取字符串 复制代码 代码如下: function cutstr(thestr1,strlen) dim l,t,c l=len(thestr1) if l<1 then exit function t=0 for dxy1=1 to l c=Abs(asc(Mid(thestr1,dxy1,1))) if c>255 then t=t+2 else t=t+1 end if if t>=strlen then thev=mid(thestr1,1,dxy1) exit for
-
bat 截取字符串(for命令) 推荐收藏
FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来: ~I - 删除任何引号("),扩展 %I %~fI - 将 %I 扩展到一个完全合格的路径名 %~dI - 仅将 %I 扩展到一个驱动器号 %~pI - 仅将 %I 扩展到一个路径 %~nI - 仅将 %I 扩展到一个文件名 %~
-
java 实现截取字符串并按字节分别输出实例代码
java 实现截取字符串并按字节分别输出实例代码 前言: 请编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC"+"汉"字的半个. 2.解析思想 本题容易产生困惑的是中文字符和英文字符如何处理,在这里需要考虑汉字和英文字符的占用字节
-
JAVA如何按字节截取字符串
这篇文章主要介绍了JAVA如何按字节截取字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 public class SubStringTest { @Test public void test() { String s = "北京市丰台区东铁营街道政馨园社区1区1号楼1层"; System.out.println(subString(s, 58)); } public static String subString(String
随机推荐
- CodeIgniter辅助函数helper详解
- Python笔记(叁)继续学习
- PowerShell中查看当前版本、Windows版本、.NET版本信息的代码
- 详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
- CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]
- 算法系列15天速成 第十四天 图【上】
- 表单元素事件 (Form Element Events)
- JSP彩色验证码的实例代码
- 简单的远程FTP定时备份Shell脚本分享
- nginx安装第三方模块的方法
- jQuery插件ContextMenu自定义图标
- csdn 博客中实现运行代码功能实现
- linux下的dhcp服务的完全配置(图文详解)
- c++中容器之总结篇
- Python获取指定文件夹下的文件名的方法
- Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
- JavaScript动态加载重复绑定问题
- 详解Vue 全局变量,局部变量
- 特殊字符的json序列化总结大全
- Android离线Doc文档访问速度慢的有效解决方法