从键盘输入字符和汉字,如 “我abc哈哈”。根据要求截取,如果截取位为汉字,则去掉汉字。如截取6位,应为:“我abc”
这个问题很多人问过了
我给出过代码,可以解决你的问题,不过觉得不是太好,希望有好方法的来讨论下!
下面是代码示例:
public class SubStringWithChinese
{
public static String getSubString(String src,int length)
{
String ititle=src;
char[] ct=ititle.toCharArray();
int sum=0;
for(int c=0;c<ct.length;c++)
{
if(Character.getType(ct[c])==5)
sum+=2;
else
sum+=1;
}
if(sum>length)
{
char[] temp=new char[length];
int t=0;
for(int c=0;c<length-1;t++)
{
if(Character.getType(ct[t])==5)
{
temp[t]=ct[t];
c+=2;
}
else
{
temp[t]=ct[t];
c+=1;
}
}
ititle=new String(temp);
return ititle;
}
else
return src;
}
public static void main(String args[])
{
String test="我abc哈哈";
System.out.println(getSubString(test,6));
}
}