怎么判断字符串是不是中文?

miniflashow 2003-04-16 02:12:54

一行只能显示10个字符,但如果其中有中文的话,例如"123456789我"怎么办?
会不会出问题?

我想如果最后一个字是中文,就不显示,用空格代替。
文档中心有篇《得到固定字符位置的函数》,但没有文中所用的String.charCodeAt(int i)方法。

请赐教。
...全文
349 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
miniflashow 2003-04-16
  • 打赏
  • 举报
回复

问题解决了。谢谢大家。
acefr():对就是篇文章,其中的String.charCodeAt(int i)是没有的。
特别感谢 sujianhua(我不懂)
dyanhb 2003-04-16
  • 打赏
  • 举报
回复
public String test(String str) {

String newStr = str;
int len = newStr.getBytes().length;
int strLen = newStr.length();

for (int i = strLen; i > 0 ;i--){
if (len <= 10) {
if (len == 9) return newStr+" ";
return newStr;
}
newStr = newStr.substring(0, i);
len = newStr.getBytes().length;
}
return newStr;
}
sujianhua 2003-04-16
  • 打赏
  • 举报
回复
//sorry
String getLenStr(String str,int iLen){
String strnew = "";
int icharlen = 0;
int istrlen = str.length();

for (int i = 0; i < istrlen ;i++){
if (str.charAt(i) > 255) icharlen++;
icharlen++;
if (icharlen <= iLen)
strnew +=str.charAt(i);
else
return strnew;
}
return strnew;
}
sujianhua 2003-04-16
  • 打赏
  • 举报
回复
//这下对了
String getLenStr(String str,int iLen){
String strnew = "";
int icharlen = 0;
int istrlen = str.length();
if( istrlen < iLen ) return str;
for (int i = 0; i < iLen ;i++){
if (str.charAt(i) > 255) icharlen++;
icharlen++;
if (icharlen <= iLen)
strnew +=str.charAt(i);
else
return strnew;
}
return strnew;
}
sujianhua 2003-04-16
  • 打赏
  • 举报
回复
//大概这样把,没调

String getLenStr(String str,int iLen){
String strnew = "";
String icharlen = 0;
for (int i = 0; i < iLen ;i++){
if (str.charAt(i) > 255) icharlen++
icharlen++;
if (icharlen <= iLen)
strnew +=str.charAt(i);
else
return strnew;
}
}
yalig 2003-04-16
  • 打赏
  • 举报
回复
<%@ page import="java.util.StringTokenizer"%>
String str2="123";
StringTokenizer str1 = new StringTokenizer(str2, ".");
str1.nextToken();
acefr 2003-04-16
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/read_article.asp?id=13104
应该可以解决你的问题。
zl_xue 2003-04-16
  • 打赏
  • 举报
回复
不对,jsp把中文页当作一个字符。更何况楼上的兄弟你这是11位--str.substring(0,10);
如果str.substring(0,9);取出的还是“123456789我”
帮你up 我也在学习中...
不知道解决方法,你用js试试吧
aleccheung 2003-04-16
  • 打赏
  • 举报
回复
str.substring(0,10);
biggie 2003-04-16
  • 打赏
  • 举报
回复
一个中文占两个字符,如果是你举的例子那就相当于输入了11个字符
你的程序做个判断不就行了
breezing 2003-04-16
  • 打赏
  • 举报
回复
如果是string类型,取最后一个字符,看ord(lastchar)是否>126

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧