社区
Java SE
帖子详情
关于一个字符串截取的问题
xiruo
2004-01-12 08:20:31
要截断一个字符串,这个字符串是中英文混合的,一个英文占一个字节,而一个中文字符占两个字节,为了不将中文从中间截断,必须判断截断点上的字符是中文还是英文。
比如取三个字符:
aaaaaaa-->aaa
aa我aaaa-->aa我
<不将我字截断>
如何截???
...全文
46
17
打赏
收藏
关于一个字符串截取的问题
要截断一个字符串,这个字符串是中英文混合的,一个英文占一个字节,而一个中文字符占两个字节,为了不将中文从中间截断,必须判断截断点上的字符是中文还是英文。 比如取三个字符: aaaaaaa-->aaa aa我aaaa-->aa我 如何截???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fishstudio
2004-01-13
打赏
举报
回复
确切的说,字符串是依靠hash code来辨别的,
substring这个方法在截取string时,考虑的正是hash code不是我们主观认为的
字符个数
CoolAbu
2004-01-13
打赏
举报
回复
你像我下面这样截取,绝对不会出现截到中文中间去的情况。而且Linux平台,WIndows平台都是一样。
String aa="我wo是shi中zhong国guo人ren";
try
{
aa = new String(aa.getBytes("utf-8"), "utf-8");
// System.out.println(aa.substring(0,5));
System.out.println(aa.substring(1,5));
}
catch(Exception e)
{
e.printStackTrace();
}
along603
2004-01-13
打赏
举报
回复
那就转GBK在截取咯
bbmer
2004-01-13
打赏
举报
回复
请问hykwolf(Yankang Hu) :
你是怎样测试的?即怎样在GBK和ISO8859-1下进行测试的,可以可以告知源代码?
hykwolf
2004-01-13
打赏
举报
回复
我测试过,用iso8859-1和GBK两种编码下,中文String的length()返回不一样的
ex:String tmp="我的abc";
GBK下,tmp.lenth()=5
ISO8859-1下tmp.length()=7;//中文字符是2个字符串
还是有区别的
paulone
2004-01-13
打赏
举报
回复
使用ascii方法很不好的,有时候莫名其妙的去不到值~,直接截取就可了!
sammy791010
2004-01-13
打赏
举报
回复
java利用的是unicode编码方式!楼主大可放心!
futurebus
2004-01-13
打赏
举报
回复
还是使用hash code好一些。
不建议使用ascii
qm0445
2004-01-13
打赏
举报
回复
哦!谢谢老兄指点:)
Leemaasn
2004-01-13
打赏
举报
回复
我也Up一下
我也Up两下
!!!
^@^
fishstudio
2004-01-13
打赏
举报
回复
qm0445(海狗) hash code在java 里面是一种机制,很安全
你如果判断ascii的值,碰上汉字有可能造成数据丢失或者内存泄露
不是好办法
kewin
2004-01-13
打赏
举报
回复
学习
qm0445
2004-01-13
打赏
举报
回复
还是判断字符的ASCII值吧!
loveyousomuch
2004-01-13
打赏
举报
回复
办个板凳来,学习一下
pleonheart
2004-01-12
打赏
举报
回复
String str = "<不将我字截断>";
System.out.println(str.substring(0,2));
String的length是不会出现将中文截断的
GFox
2004-01-12
打赏
举报
回复
不会出现这样问题,在java中,一个英文也是占两个字节,和中文字是一样的
不会将中文分成两段的
所以楼主放心用好了
Mars_wx
2004-01-12
打赏
举报
回复
判断字符的ASCII值,
字符串的截取、分割,截取指定字符前面(后面)所有字符
关于
字符串截取
问题
,从网上搜到总结一下: 已知
一个
字符串,截取第
一个
指定字符后面所有字符 (1)获取第
一个
"_"后面所有字符,举例: String a = "abcd_efgh_ijklmn_"; int index = a.indexOf("_");//获取第
一个
"_"的位置 String after = a.substring(index + 1); System.out.println("截取字符串为:" + after); 输出结果为: 截取字符串为:afhaf_afa_ (2)获取第
一个
"_"
常用的
字符串截取
方法
1 取字符串的前i个字符 str=str.substring(0,i); str=str.remove(i,str.Length-i); 2 去掉字符串的前i个字符: str=str.remove(0,i); str=str.substring(i); 3 从右边开始取i个字符: str=str.substring(str.Length-i); str=str.remove(0,str.Lengt...
Oracle中
字符串截取
最全方法总结
substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 示例: SELECT SUBSTR('Hello SQL!', 1) FROM dual .........
Java最全截取字符串方法
主要有以下几种方法: 1、通过subString()方法来进行
字符串截取
(最常用) 2、通过StringUtils提供的方法 3、split()+正则表达式来进行截取 先来介绍最常用的一种 1、通过subString()方法来进行
字符串截取
,返回字符串中的子字符串,在java中有两种用法 第一种,传递
一个
参数: public String substring(int beginIndex) //该子字符串从指定索引处的字符开始,直到此字符串末尾。 第二种,传递两个参数:
java
字符串截取
的几种方式
众所周知,java提供了很多
字符串截取
的方式。下面就来看看大致有几种。 1.split()+正则表达式来进行截取。 将正则传入split()。返回的是
一个
字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。String str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章