package Test;
import java.io.UnsupportedEncodingException;
public class test1 {
public static String getString(String s, int n)
throws UnsupportedEncodingException {
int index = 0; // 定义游标位置
StringBuffer ss = new StringBuffer();
for (int i = 0; i < n; i++) {
if (s.charAt(index) < 255 && s.charAt(index) > 0 // s.charAt(index)
// < 255
// asicc码大于255的是汉字
|| Character.isDigit(s.charAt(index))) {
// Character.isDigit(s.charAt(index)) 确定指定字符(Unicode 代码点)是否为数字。
ss.append(s.charAt(index)); // 如果当前字符不输于字母或者是数字,则添加到结果。
index++;
} else {
ss.append(s.charAt(index)); // 如果当前字符是汉字,则添加到结果中,游标向前移动一位。
index++;
i++;
}
}
return ss.toString();
}
public static void main(String[] ard) throws UnsupportedEncodingException {
System.out.println(getString("中国123", 2));
System.out.println(getSting2("中国123", 5));
}
private static StringBuilder getSting2(String obj, int length) {
StringBuilder sBuilder = new StringBuilder();
int objLength = obj.getBytes().length;
int j = 0;// 循环截取字符串变量
if (length > objLength) {//防止截图长度大于本身长度
length = objLength;
}
for (int i = 0; i < length; i++) {
String temp = obj.substring(j, j + 1);// 循环截取字符
if (temp.getBytes().length == 2) {// 字符为汉字
sBuilder.append(temp);
i++;
} else {
sBuilder.append(temp);
}
j++;
}
return sBuilder;
}
}
import java.io.UnsupportedEncodingException;
public class test1 {
public static String getString(String s, int n)
throws UnsupportedEncodingException {
int index = 0; // 定义游标位置
StringBuffer ss = new StringBuffer();
for (int i = 0; i < n; i++) {
if (s.charAt(index) < 255 && s.charAt(index) > 0 // s.charAt(index)
// < 255
// asicc码大于255的是汉字
|| Character.isDigit(s.charAt(index))) {
// Character.isDigit(s.charAt(index)) 确定指定字符(Unicode 代码点)是否为数字。
ss.append(s.charAt(index)); // 如果当前字符不输于字母或者是数字,则添加到结果。
index++;
} else {
ss.append(s.charAt(index)); // 如果当前字符是汉字,则添加到结果中,游标向前移动一位。
index++;
i++;
}
}
return ss.toString();
}
public static void main(String[] ard) throws UnsupportedEncodingException {
System.out.println(getString("中国123", 2));
System.out.println(getSting2("中国123", 5));
}
private static StringBuilder getSting2(String obj, int length) {
StringBuilder sBuilder = new StringBuilder();
int objLength = obj.getBytes().length;
int j = 0;// 循环截取字符串变量
if (length > objLength) {//防止截图长度大于本身长度
length = objLength;
}
for (int i = 0; i < length; i++) {
String temp = obj.substring(j, j + 1);// 循环截取字符
if (temp.getBytes().length == 2) {// 字符为汉字
sBuilder.append(temp);
i++;
} else {
sBuilder.append(temp);
}
j++;
}
return sBuilder;
}
}