java截取字符串 一个字符串中可能包含全角半角字符,以每6个字节为一段,把结果放到list中。

java实现将字符串中的半角转换为全角?~

/**
* 半角转全角
* @param input String.
* @return 全角字符串.
*/
public static String ToSBC(String input) {
char c[] = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == ' ') {
c[i] = ' ';
} else if (c[i] < '\177') {
c[i] = (char) (c[i] + 65248);
}
}
return new String(c);
}
网上都能找到,方法好多

可以用截取字符串中中文的思路去解决,一般情况半角空格占1字节,全角占2字节。具体代码忘了,思路就是先将字符串转化成byte[] 然后判断每个字母或汉字所占的字节大小,最后再截取。

public static void main(String[] args){
String str="轮LRW爱JAVA吖";
List<String> result = new ArrayList<String>();
for(int i=0;i<str.length();){
StringBuilder substr = new StringBuilder("");
for(int j=0;j<6;){
if(i>=str.length()) break;
if(str.charAt(i)>255){
j +=2;
}else{
j++;
}
if(j<=6){
substr.append(str.charAt(i));
i++;
}
}
if(!substr.equals("")){
result.add(substr.toString());
}
}
System.out.println(Arrays.toString(result.toArray()));
}

输出结果为
[轮LRW, 爱JAV, 吖]

这个太简单了
首先string有length长度,对length进行除6整,然后循环就可以做到了。

public class StringTest {
public static void main(String[] args) {
List list=new ArrayList();
String str="轮LRW爱JAVA吖";
byte[] bs=str.getBytes();
System.out.println(bs.length);
for(int i=0;i<bs.length/6+1;i++){
if(i==bs.length/6){
list.add(new String(bs,i*6,bs.length-i*6));
break;
}
list.add(new String(bs,i*6,6));

}
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
结果
13
轮LRW?
甁AVA?
?

你要的代码啊,可是爱正好在6,7的位置上,所以会出现?

相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网