编程:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,
输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
class Test
{
public static String subString(String s,int i)
{
char[] ct=s.toCharArray();
int sum=0;
char[] temp=new char[s.length()];
if(i<=0)
return "";
if(i==1&&Character.getNumericValue(ct[0])==-1)
return "";
for(int c=0;c<ct.length;c++)
{
if(Character.getNumericValue(ct[c])==-1)
sum+=2;
else
sum+=1;
temp[c]=ct[c];
if(c<ct.length-1&&Character.getNumericValue(ct[c+1])==-1)
{
if(sum+2>i)
break;
}
if(sum>=i)
break;
}
return new String(temp);
}
public static void main(String[] args)
{
String ititle="我ABC汉DEF";
System.out.println(subString(ititle,6));
}
}
from:http://bbs.bc-cn.net/dispbbs.asp?boardID=8&ID=115092&page=1
本文提供了一道Java编程面试题的解决方案,该题要求实现一个函数,用于按字节截取字符串,同时确保不会截断汉字。示例代码展示了如何判断字符类型并正确处理中文字符。

1126

被折叠的 条评论
为什么被折叠?



