汉字字符串分割问题,高手帮帮忙 写一个方法,有两个参数,一个是待截取的字符串,另一个是要截取的字节数,返回截取后的字符串,要求返回的字符串中的中文不能出现乱码。如:("我ABC",4)应该截取为“我AB”。输入(“我ABC汗DEF”,6)应该截取为“我ABC”而不是“我ABC+汗的半个”。别忘了写注释哈。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 才看到过一个帖子 就csdn上! 给个方法给你看看。public class Test { public static void main(String[] args) { mySplit("我ABC", 4); mySplit("我ABC汗DEF", 6); } /* * 写一个方法,有两个参数,一个是待截取的字符串,另一个是要截取的字节数,返回截取后的字符串, 要求返回的字符串中的中文不能出现乱码。 * 如:("我ABC", 4)应该截取为“我AB”。 * 输入(“我ABC汗DEF”,6)应该截取为“我ABC”而不是“我ABC+汗的半个”。别忘了写注释哈。 */ private static void mySplit(String str, int count) { byte[] temp = str.getBytes(); byte[] bArray = new byte[count * 2]; int i; int ii = 0;// 用于判断最后一个是不是一半汉字 String strc = "full"; for (i = 0; i < count; i++) { bArray[i] = temp[i]; } for (i = 0; i < count; i++) { if (bArray[i] < 0) { ii++; } } if (ii % 2 != 0) { strc = "hard"; } // 截下去为完全的时候 if (strc.equals("full") && bArray[i] < 0) { bArray[i] = ' '; } // 截下去为一半的时候 if (strc.equals("hard") && bArray[i - 1] < 0) { bArray[i - 1] = ' '; } System.out.println(new String(bArray).trim()); }} 一个简单的方法: public static void getChar(String str, int count) { byte[] byteArray = new byte[count]; byte[] temp = str.getBytes(); int ii = 0; for (int i = 0; i < count; i++) { byteArray[i] = temp[i]; if (temp[i] < 0) { ii++; } } if (ii % 2 == 1) { byteArray[count - 1] = ' '; } System.out.println(new String(byteArray).trim()); } java中的代码块在开发中都有什么作用么特别是static代码块 大家好,小弟又来询问 完全迷茫,一道线程 关于Java程序名称规则的补充 用java applet怎样实现下面类似的功能,在现等,急需,请高手多多指点?? 一个关于java编码的问题? 用final声明一个方法除了效率上还有什么其他意义吗? 200分大讨论,进者有分!! 请问高手: 关于文件读写的问题. 用哪个jdk? 初学者的问题 关于AWT标签, 致富堡公司的一套鄙视题 大家来坐坐吧
mySplit("我ABC", 4);
mySplit("我ABC汗DEF", 6);
} /*
* 写一个方法,有两个参数,一个是待截取的字符串,另一个是要截取的字节数,返回截取后的字符串, 要求返回的字符串中的中文不能出现乱码。
* 如:("我ABC", 4)应该截取为“我AB”。
* 输入(“我ABC汗DEF”,6)应该截取为“我ABC”而不是“我ABC+汗的半个”。别忘了写注释哈。
*/
private static void mySplit(String str, int count) { byte[] temp = str.getBytes();
byte[] bArray = new byte[count * 2]; int i;
int ii = 0;// 用于判断最后一个是不是一半汉字
String strc = "full"; for (i = 0; i < count; i++) {
bArray[i] = temp[i];
}
for (i = 0; i < count; i++) {
if (bArray[i] < 0) {
ii++;
}
}
if (ii % 2 != 0) {
strc = "hard";
} // 截下去为完全的时候
if (strc.equals("full") && bArray[i] < 0) {
bArray[i] = ' ';
}
// 截下去为一半的时候
if (strc.equals("hard") && bArray[i - 1] < 0) {
bArray[i - 1] = ' ';
}
System.out.println(new String(bArray).trim());
}}
byte[] byteArray = new byte[count];
byte[] temp = str.getBytes();
int ii = 0;
for (int i = 0; i < count; i++) {
byteArray[i] = temp[i];
if (temp[i] < 0) {
ii++;
}
}
if (ii % 2 == 1) {
byteArray[count - 1] = ' ';
}
System.out.println(new String(byteArray).trim()); }