String str = "这是测试ABCD测试" ;
我现想做的就是,对str进行截取,按给出的字节来取得,假如给出的是3,取出来的字符应该是"这",而不是"这"加上"是"的半个字符,谢谢!
我现想做的就是,对str进行截取,按给出的字节来取得,假如给出的是3,取出来的字符应该是"这",而不是"这"加上"是"的半个字符,谢谢!
解决方案 »
- 为什么编辑窗口下面的撤销不能响应,而帮助下面的查看帮助能响应?求问
- 求助!写一个函数判断一个文件里有多少个函数??
- CSDN的下载真烂,慢的要死,结果是扣了分没下载到东西!
- 请教如果知道一个string类型的文件名(没有后缀)如何读取文件?
- 请问我想分拣出一个javaproject中没有被调用过的程序或方法,有什么工具能做到,eclipse行么?
- 用socket进行通信,客户端和服务器之间的通信解决了,客户端客户端之间如何在线程中通信(在线等)
- 该学那个好呢?——一个郁闷的学生
- 如何发布这个Applet比较合理,请大家都来谈谈
- 怎么JBuilder不能运行?
- 上海徐家汇美资软件公司急招 java开发程序员 2~5年经验
- 请使用 -Xlint:deprecation 重新编译。是怎么编辑个法~!!!
- 关于java文件读写的问题(在线等)
楼主是不是看错了,如果str.substring(3),取出来的怎么可能是“这”,取出来的应该是“试ABCD测试”才对
str.substring(0,(i%2==0)?i:(i-1));不过很奇怪,一个汉字应该就是string中的1位,
也就是说str.length ==10比如楼主说的String str = "这是测试ABCD测试";
str.substring(0,1)就应该出来“这”
str.substring(0,2)就应该出来“这是”
String str2 = "这是ABCDEFGHIFLKLG测试用的" ;
String str3 = "ASDFDDFFFFFFFFFFFFFFFFFFDF" ;
比如我现在有一个显示框,里面只可以显示5个字符,当str中全为双字节的字符时,截取str1的结果为:这是测试用;当str中全为str3所示时,截取str3的结果为:ASDFDDFFFF;当str中字符为str2中所示时,截取str2的结果为:这是ABCDEF;-->这样如何实现???在线等,急急急!谢谢!
{
char[] temp;
char ch;
int i,n=0;
for ( i = 0; i < str1.length(); i++)
{
ch = str1.charAt(i);
temp = new char[] {ch};
byte[] uniCode = new String(temp).getBytes();
if (uniCode[0] < 128 && uniCode[0] > 0)//判断是否为汉字
n++;
else n+=2;//汉字取两字节
if(n==N) break;
else if(n>N) {i--;break;}//避免出现半个汉字
}
return=str1.substring(0,i+1);
}
函数的类型是
public String mysubstring(String str1,int N)
漏打String了
或者在函数第一行加上
N=N*2;
try {
System.out.println(str.substring(3,4));
} catch (Exception e) {
e.printStackTrace();
}===========
test 上面的代码!