t104a110k115)-java

oalqel3c  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(307)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

21天前关门了。
改进这个问题
我已经将字符的偶数位置转换为ascii值,我希望这些ascii值再次转换回字符。
所以字符串值是“谢谢”
换算值为“t104a110k115”
我想再说一遍“谢谢”。
我用过的程序。。。转换

  1. StringBuilder sb = new StringBuilder();
  2. for (int i = 0; i < Str2.length(); i++) {
  3. if (i % 2 != 0) {
  4. int m = Str2.charAt(i);
  5. sb.append(m); // add the ascii value to the string
  6. } else {
  7. sb.append(Str2.charAt(i)); // add the normal character
  8. }
  9. }
  10. System.out.println("Replaced even chart with ascii--"+sb.toString());
  11. sb.append(3);
  12. System.out.println("added a int--"+sb.toString());
ercv8c1e

ercv8c1e1#

注意:这个答案使用正则表达式。如果你不懂正则表达式,现在也许是上网学习的好时机。
在java 11及更高版本中,您可以这样做:

  1. String input = "T104a110k115";
  2. String result = Pattern.compile("\\d+").matcher(input)
  3. .replaceAll(r -> Character.toString(Integer.parseInt(r.group())));
  4. System.out.println(result); // prints: Thanks

在旧版本(java 1.4及更高版本)中,可以这样做:

  1. StringBuffer buf = new StringBuffer();
  2. Matcher m = Pattern.compile("\\d+").matcher(input);
  3. while (m.find()) {
  4. char c = (char) Integer.parseInt(m.group());
  5. m.appendReplacement(buf, String.valueOf(c));
  6. }
  7. String result = m.appendTail(buf).toString();
展开查看全部

相关问题