首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游程解压

游程解压
EN

Stack Overflow用户
提问于 2013-11-22 05:01:26
回答 6查看 1.4K关注 0票数 0

我是CS学生。我想写一个程序来解压缩一个字符串,这个字符串是根据一种经过修改的游程编码形式编码的(我已经为它写过代码了)。例如,如果字符串包含'bba10‘,它将解压为'bbaaaaaaaaaa’。如何让程序识别字符串的一部分('10')是一个整数?

感谢您的阅读!

EN

回答 6

Stack Overflow用户

发布于 2013-11-22 05:10:56

一个简单的正则表达式就可以了。

代码语言:javascript
复制
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在哪里

代码语言:javascript
复制
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();
}
票数 4
EN

Stack Overflow用户

发布于 2013-11-22 05:09:36

不确定这是否是一种有效的方法,但仅供参考

代码语言:javascript
复制
for (int i=0;i<your_string.length();i++)
    if (your_string.charAt(i)<='9' && your_string.charAt(i)>='0')
        integer_begin_location = i;
票数 0
EN

Stack Overflow用户

发布于 2013-11-22 05:11:57

我认为您可以将字符分为数字符号,而不是数字符号。

当您找到一个数字1 (>0和<9)时,您可以查看下一个数字,并选择放大您的数字(当前*10 +新的)或扩展您的字符串

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20131787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档