String s1 = "123456789";
s1.subString(0,6);
可以截取
String s2 = "我啊1啊啊啊";
s2.subString(0,6);
出现异常 怎么处理能判断要是出现s2状态就截取5个呢!?
s1.subString(0,6);
可以截取
String s2 = "我啊1啊啊啊";
s2.subString(0,6);
出现异常 怎么处理能判断要是出现s2状态就截取5个呢!?
解决方案 »
- 关于Java类加载器的问题
- 指点一下,运行结果提示:Exception in thread "main" java.lang.NoSuchMethodError: main
- [求助]如何比较高效的访问远程数据库?
- 大家能说说Map的具体用法吗
- 为何会报错result = new sun.misc.BASE64Encoder().encode(rsaCipherText);
- 讨论:java访问远程access数据库的方法
- 请问正则相关匹配次数问题
- 连接MYSQL 出问题,比较急
- 如何实现TreeSet的Comparator接口,急!!!我不会写
- java中函数的缺省参数怎么定义?
- 菜鸟问题,高手来解决!!
- 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 );