题目
给定一个字符串str,返回str的统计字符串。
补充题目
给定一个字符串的统计字符串cstr,再给定一个整数index,返回cstr所代表的原始字符串上的第index个字符。
代码实现
public class GetCountString {
public String getCountString(String str) {
if (str == null || str.equals("")) {
return "";
}
String res = String.valueOf(str.charAt(0));
int num = 1;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) != str.charAt(i - 1)) {
res = concat(res, String.valueOf(num), String.valueOf(str.charAt(i)));
num = 1;
} else {
num++;
}
}
return concat(res, String.valueOf(num), "");
}
public String concat(String s1, String s2, String s3) {
return s1 + "_" + s2 + (s3.equals("") ? s3 : "_" + s3);
}
//补充题目
public char getCharAt(String cstr, int index) {
if (cstr == null || cstr.equals("")) {
return 0;
}
boolean stage = true;
char cur = 0;
int num = 0;
int sum = 0;
for (int i = 0; i != cstr.length(); i++) {
if (cstr.charAt(i) == '_') {
stage = !stage;
} else if (stage){
sum += num;
if (sum > index) {
return cur;
}
num = 0;
cur = cstr.charAt(i);
} else {
num = num * 10 + cstr.charAt(i) - '0';
}
}
return sum + num > index ? cur : 0;
}
}