在java中怎样判断全角半角? 从数据库中读出来的数据,如何检查全角半角? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if(str.getBytes().length==string.length){全是半角}if(str.getBytes().length > str.length && str.getBytes().length != str.length){混合}if(str.getBytes().length == str.length *2){全是全角} if(str.getBytes().length > str.length && str.getBytes().length != str.length){混合}这是何意? public static boolean isAllHalf(String param) { char[] chs = param.toCharArray(); for (int i = 0; i < chs.length; i++) { if (!(('\uFF61' <= chs[i]) && (chs[i] <= '\uFF9F')) && !(('\u0020' <= chs[i]) && (chs[i] <= '\u007E'))) { return false; } } return true;} if(str.getBytes().length > str.length && str.getBytes().length != str.length){混合}这是何意?------------------------------------------如果是全角 编码为2个字节 半角为一个字节如果两者皆有的话,那么满足(str.getBytes().length < str.length*2) && (str.getBytes().length > str.length)与上面的逻辑等价 附上测试类:-----------------------------public class FullHalf { public static void main(String args[]) { String str = ",,??你"; String str2 = ",,,"; String str3 =":::"; fullHalf(str); fullHalf(str2); fullHalf(str3); } private static void fullHalf(String str) { if(str.getBytes().length == str.length()) System.out.println("Half"); if(str.getBytes().length == str.length()*2) System.out.println("Full"); if(str.getBytes().length < str.length()*2 && str.getBytes().length > str.length()) System.out.println("Mix"); }} 嗬嗬,谢谢大家!下面是我同时帮忙写的一个,看一下import java.io.UnsupportedEncodingException;public class CharacterTest { public static void main(String[] args) { char inputs[] = {'1','1','タ','a'}; for (int i = 0; i < inputs.length; i++) { System.out.println(isFull(inputs[i])); } for (int i = 0; i < inputs.length; i++) { System.out.println(isFull2(inputs[i])); } } private static boolean isFull(char ch){ String str = new String(new char[]{ch}); try { byte[] buf = str.getBytes("UTF-16"); if(buf[2]!=0) return true; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return false; } private static boolean isFull2(char ch){ String str = new String(new char[]{ch}); byte[] buf = str.getBytes(); if(buf.length != 1) return true; return false; } }返回falsetruetruetrue 用我的那个吧,因为我们公司就是做日本外包项目的。这个就可以public static boolean isAllHalf(String param) { char[] chs = param.toCharArray(); for (int i = 0; i < chs.length; i++) { if (!(('\uFF61' <= chs[i]) && (chs[i] <= '\uFF9F')) && !(('\u0020' <= chs[i]) && (chs[i] <= '\u007E'))) { return false; } } return true;} java函数调用问题 如何得到子文件夹名 分如果不够再开帖子加 怎样在eclipse中把设置main函数中的参数?? 请教使用float.parse()的问题 http服务器和应用服务器有什么区别?? 在java中调用返回值为Cursor的SQL Server2K存储过程的问题? 决定每次提问给分的数量是由什么决定的???? 怎样才能做出半透明的JMenuItem,有人会吗? 如何用java显示bmp格式文件?非常渴望你的帮助! SWT的配置 <html:file 的readonly 问题
全是半角
}
if(str.getBytes().length > str.length && str.getBytes().length != str.length){
混合
}
if(str.getBytes().length == str.length *2){
全是全角
}
混合
}
这是何意?
char[] chs = param.toCharArray();
for (int i = 0; i < chs.length; i++) {
if (!(('\uFF61' <= chs[i]) && (chs[i] <= '\uFF9F'))
&& !(('\u0020' <= chs[i]) && (chs[i] <= '\u007E'))) {
return false;
}
} return true;
}
混合
}
这是何意?
------------------------------------------
如果是全角 编码为2个字节 半角为一个字节
如果两者皆有的话,那么满足
(str.getBytes().length < str.length*2) && (str.getBytes().length > str.length)
与上面的逻辑等价
-----------------------------
public class FullHalf {
public static void main(String args[]) {
String str = ",,??你";
String str2 = ",,,";
String str3 =":::";
fullHalf(str);
fullHalf(str2);
fullHalf(str3);
}
private static void fullHalf(String str) {
if(str.getBytes().length == str.length())
System.out.println("Half");
if(str.getBytes().length == str.length()*2)
System.out.println("Full");
if(str.getBytes().length < str.length()*2 && str.getBytes().length > str.length())
System.out.println("Mix");
}
}
下面是我同时帮忙写的一个,看一下import java.io.UnsupportedEncodingException;public class CharacterTest { public static void main(String[] args) {
char inputs[] = {'1','1','タ','a'};
for (int i = 0; i < inputs.length; i++) {
System.out.println(isFull(inputs[i]));
}
for (int i = 0; i < inputs.length; i++) {
System.out.println(isFull2(inputs[i]));
}
}
private static boolean isFull(char ch){
String str = new String(new char[]{ch});
try {
byte[] buf = str.getBytes("UTF-16");
if(buf[2]!=0) return true;
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return false;
}
private static boolean isFull2(char ch){
String str = new String(new char[]{ch});
byte[] buf = str.getBytes();
if(buf.length != 1) return true;
return false;
}
}返回
false
true
true
true
public static boolean isAllHalf(String param) {
char[] chs = param.toCharArray();
for (int i = 0; i < chs.length; i++) {
if (!(('\uFF61' <= chs[i]) && (chs[i] <= '\uFF9F'))
&& !(('\u0020' <= chs[i]) && (chs[i] <= '\u007E'))) {
return false;
}
} return true;
}