截取字符串问题!!请大家踊跃帮忙哈~~ String s1 = "123456789";s1.subString(0,6);可以截取String s2 = "我啊1啊啊啊";s2.subString(0,6);出现异常 怎么处理能判断要是出现s2状态就截取5个呢!? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有问题啊,我运行了一下可以的啊,String s2 = "我啊1啊啊啊";System.out.println(s2.substring(0, 6));结果输出:我啊1啊啊啊 没明白楼主意思,s2.subString(0,6); 如果用这个的话,一个汉字也是占一位,例如String str="哈哈1呵呵"; String str2=str.subString(0,2); str2=哈哈。你上面的不会出现异常,如果要根据字节数取字符串,就像1楼说的,用正则表达式判断占用几个字节 正则表达式为 String regEx="^[^\\x00-\\xff]{1}$" /** * 字符串截取 * @param str 被截取的字符串 * @param bytes 截取字节数 * @return */public static String SplitString(String str, int bytes) { int count = 0; String reStr = ""; if (str == null) { return ""; } char[] tempChar = str.toCharArray(); for (int i = 0; i < tempChar.length; i++) { String s1 = String.valueOf(tempChar[i]); byte[] b = s1.getBytes(); count += b.length; if (count <= bytes) { reStr += tempChar[i]; } } return reStr; } String s2 = "我啊1啊啊啊"; String[] arr = s2.split( "(?<=\\G.{1})" ); String s3 = ""; for ( int i = 0; i < 5; i++ ) { s3 += arr[i]; } System.out.println( s3 ); Properties类的简单问题 请教排序问题,谢谢 将字节数组转化为16进制的字符串? 10分求个JDK1.4.2_01-b03下载 JTable可能实现网格合并的功能吗? 关于JAVA打印程序设计. Jbuilder中有没有可以可以直接读写dbf文件的控件,请高人指点,比较急,谢谢!!!!!!!!!! 整合的Apache+Tomcat,如何能支持servlet?? 求高手点拨:一个Java的代码书写,所反映的Java的底层知识. 程序运行时,出现一个完全展开的JTree? 菜鸟问题,高手来解决!! java mssql 问题
String s2 = "我啊1啊啊啊";
System.out.println(s2.substring(0, 6));
结果输出:我啊1啊啊啊
String str2=str.subString(0,2); str2=哈哈。你上面的不会出现异常,如果要根据字节数取字符串,就像1楼说的,用正则表达式判断占用几个字节
正则表达式为 String regEx="^[^\\x00-\\xff]{1}$"
/**
* 字符串截取
* @param str 被截取的字符串
* @param bytes 截取字节数
* @return
*/
public static String SplitString(String str, int bytes) {
int count = 0;
String reStr = "";
if (str == null) {
return "";
}
char[] tempChar = str.toCharArray();
for (int i = 0; i < tempChar.length; i++) {
String s1 = String.valueOf(tempChar[i]);
byte[] b = s1.getBytes();
count += b.length;
if (count <= bytes) {
reStr += tempChar[i];
}
}
return reStr;
}
String[] arr = s2.split( "(?<=\\G.{1})" );
String s3 = "";
for ( int i = 0; i < 5; i++ )
{
s3 += arr[i];
}
System.out.println( s3 );