我是CS学生。我想写一个程序来解压缩一个字符串,这个字符串是根据一种经过修改的游程编码形式编码的(我已经为它写过代码了)。例如,如果字符串包含'bba10‘,它将解压为'bbaaaaaaaaaa’。如何让程序识别字符串的一部分('10')是一个整数?
感谢您的阅读!
发布于 2013-11-22 05:10:56
一个简单的正则表达式就可以了。
final Matcher m = Pattern.compile("(\\D)(\\d+)").matcher(input);
final StringBuffer b = new StringBuffer();
while (m.find())
m.appendReplacement(b, replicate(m.group(1), Integer.parseInt(m.group(2))));
m.appendTail(b);replicate在哪里
String replicate(String s, int count) {
final StringBuilder b = new StringBuilder(count);
for (int i = 0; i < count; i++) b.append(s);
return b.toString();
}发布于 2013-11-22 05:09:36
不确定这是否是一种有效的方法,但仅供参考
for (int i=0;i<your_string.length();i++)
if (your_string.charAt(i)<='9' && your_string.charAt(i)>='0')
integer_begin_location = i;发布于 2013-11-22 05:11:57
我认为您可以将字符分为数字符号,而不是数字符号。
当您找到一个数字1 (>0和<9)时,您可以查看下一个数字,并选择放大您的数字(当前*10 +新的)或扩展您的字符串
https://stackoverflow.com/questions/20131787
复制相似问题