Java: 如何在拆分单词并反转后将分隔符重新添加到字符串中?

huangapple go评论180阅读模式
英文:

Java: How to readd delimiter back to string after reversing split word?

问题

  1. String fileContent = "def mnop.STU";
  2. String delimiter = "[^a-zA-Z0-9']+";
  3. String[] splitWords = fileContent.split(delimiter);
  4. StringBuilder stringBuilder = new StringBuilder();
  5. for (String word : splitWords) {
  6. StringBuilder output = new StringBuilder(word).reverse();
  7. stringBuilder.append(output);
  8. }
  9. StringJoiner joiner = new StringJoiner(delimiter);
  10. for (String reversedWord : splitWords) {
  11. joiner.add(new StringBuilder(reversedWord).reverse());
  12. }
  13. System.out.println(joiner.toString());
  1. Current output: fedponmUTS
  2. Desired output: fed ponm.UTS
英文:

After I reverse the split words, I am unsure on how to re add the delimiters.

  1. String fileContent = "def mnop.STU";
  2. String delimiter = "[^a-zA-Z0-9']+";
  3. String[] splitWords = fileContent.split(delimiter);
  4. StringBuilder stringBuilder = new StringBuilder();
  5. for (String word : splitWords) {
  6. StringBuilder output = new StringBuilder(word).reverse();
  7. stringBuilder.append(output);
  8. }
  9. StringJoiner joiner = new StringJoiner(delimiter);
  10. joiner.add(stringBuilder);
  11. System.out.println(joiner.toString());

Current output: fedponmUTS

Desired output: fed ponm.UTS

答案1

得分: 2

这不是非常优雅的代码,但你能否像这样做?

  1. for (String word : splitWords)
  2. {
  3. int idx = fileContent.indexOf(word, stringBuilder.length());
  4. String delim = fileContent.substring(stringBuilder.length(), idx);
  5. stringBuilder.append(delim);
  6. StringBuilder output = new StringBuilder(word).reverse();
  7. stringBuilder.append(output);
  8. }

输出:

  1. fed ponm.UTS
英文:

It's not very elegant, but could you do something like this?

  1. for (String word : splitWords)
  2. {
  3. int idx = fileContent.indexOf(word, stringBuilder.length());
  4. String delim = fileContent.substring(stringBuilder.length(), idx);
  5. stringBuilder.append(delim);
  6. StringBuilder output = new StringBuilder(word).reverse();
  7. stringBuilder.append(output);
  8. }

Output:

  1. fed ponm.UTS

huangapple
  • 本文由 发表于 2020年4月6日 13:12:01
  • 转载请务必保留本文链接:https://go.coder-hub.com/61053304.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定