本帖最后由 机智的黄图哥 于 2015-4-15 19:09 编辑
代码如下
求大神讲解下思路 为什么要这么写??
public class Test10 {
public static void main(String[] args) throws UnsupportedEncodingException {
String text = "HM程序员";
System.out.println(method(text, 4));// 传递要截取的字符串的和截取后的长度
}
private static String method(String str, int len)
throws UnsupportedEncodingException {
String result = null; // 设置一个字符串容器 接收指定好的字符串
// 判断str是否为空
if (str != null) {
byte[] a = str.getBytes(); // 对字符串进行编码 长度为8
System.out.println(a.length);
// 判断a的长度是否小于等于len
if (a.length <= len) { // 判断长度是否小于要返回的长度 小于直接返回本身
result = str;
} else if (len > 0) {
result = new String(a, 0, len); // 通过String构造对字节数组进行解码
int length = result.length(); // 此处接收要指定长度的字符串的长度
if (str.charAt(length - 1) != result.charAt(length - 1)) {
if (length < 2) {
result = null;
} else {
System.out.println("length="+length);
result = result.substring(0, length - 1);
}
}
}
}
return result;// 为空返回null;
|
|