问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中文字符输出问题

发布网友 发布时间:2022-05-06 09:56

我来回答

5个回答

热心网友 时间:2022-06-29 07:50

这个我网上一找就找到了,代码只把其中一个减号变成了加号。像你这种截5个6个都是同一个结果的话,就不能按照字符串截取了,要截取字节了 。代码如下,我用的是junit测试的,通过没问题。
public static String bSubstring(String s, int length) throws Exception {
byte[] bytes = s.getBytes("Unicode");
int n = 0; // 表示当前的字节数
int i = 2; // 要截取的字节数,从第3个字节开始
for (; i < bytes.length && n < length; i++) {
if (i % 2 == 1)// 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节
{
n++; // 在UCS2第二个字节时n加1
} else {
if (bytes[i] != 0)// 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节
{
n++;
}
}
}
if (i % 2 == 1)// 如果i为奇数时,处理成偶数
{
if (bytes[i - 1] != 0)// 该UCS2字符是汉字时,修复这个截一半的汉字
i = i + 1;
else
// 该UCS2字符是字母或数字,则保留该字符
i = i + 1;
}
return new String(bytes, 0, i, "Unicode");
}

@Test
public void testGetByte() throws Exception {
String s = "abcd我们回答";
System.out.println(bSubstring(s, 6));
}

、//不好意思,把我所有的测试代码都发过来了,我只发你需要的这一个方法吧。

热心网友 时间:2022-06-29 07:51

不明白你的需求,为什么截取前五个和截取前六个要得到一样的字符串,那截取前七个和截取前八个是不是也要得到一样的字符串,依次类推?追问不是啊,就是“我”占两位表示出来啊,输出5个的就是直接用字符串输出,后面的输出6个就是将“我”改为占两位啊,但是我不会写代码

热心网友 时间:2022-06-29 07:51

你的意思是我占两位?
那你用byte吧追问嗯,就是“我”占两位,我也试过用byte但是输出的变成了别的编码形式的东西

追答那你写个算法吧 你需要对字符串每个字符循环 汉字的用byte接收是长度是2
下面这个例子就能判断
String name = "aa我shi哈商";
String tmp = name.substring(2, 3);
byte[] b = new byte[20];
b = tmp.getBytes();
System.out.println(b.length); //结果是2

热心网友 时间:2022-06-29 07:52

是中文占位的问题还是*截取的问题?追问中文占位输出中文的问题

热心网友 时间:2022-06-29 07:52

substring
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 JAVA的中文字符输入输出 请问,java中,将下面的英文名字变为中文 该怎样输出? java 怎么输入输出中文,我写的代码输出会乱码 为什么Java程序输出不了中文? JAVA关於输入和输出中文 java 如何打印字符串中的中文 编写java程序输出所有汉字(eclipse环境下) JAVA中怎样在String中输出中文字符串(Jcreator)? 如何在Java中输出汉字 JAVA如何通过程序输出所有汉字 最近各大银行有什么比较好的理财产品推出? java 如何输出所有汉字 java怎么 输入输出中文 你觉得谁更适合演《青春斗》里向真这个角色? 你希望《青春斗》中谁和谁在一起? 向真赵聪最后在一起了吗, 家里出现蜈蚣怎么除掉? 我家有好多几厘米长的蜈蚣,家里比较干燥,就是有点脏乱,没有腐烂的东西,为什么会有这么多蜈蚣呢? 怎么才能当体育老师? 你知道的人类历史上文明都有哪些?人类劳动力对社会进步的意义 求解JAVA输入输出中文 、货币资金是企业生产经营过程中处于货币形态的资产,是流动性最强的流动资产也称为(&#160;)? 朋友借钱不还,有借条,应该怎么办 朋友借钱不还,有借条,怎么办 朋友借钱不还现在赖账了写有借条我给怎么处理? ACCESS中重复数据统计 北京中国大饭店的董事长是谁 中国光彩集团领导背景,光彩集团董事长是谁? 女人梦到有两个不会走路的小男孩都喜欢让她抱着,解梦 梦到大水冲过来好几个小男孩什么意思 在微信里面发给别人以后的照片怎样在相册删除 微信相册里的发送后的照片怎么删除 男明友的微信名是,海上还是海上月,下一句我想接成只属于他一个人的情侣句子? 情侣会将另一半,微信 置顶? 情侣设什么比较有意义? 对你情到深处的男人,在微信上才会有这5个表现,是什么? 有什么适合情侣的格式? catia怎么画齿条齿条 PROE齿条的画法 geartrac2012 for solidworks 怎样绘制齿条