如何在字符串中的字符之间添加连字符,从而创建新字符串作为结果

时间:2016-11-28 02:28:47

标签: java string

这是我的方法。它没有返回任何东西。请帮助,我不知道如何获得所需的字符串名称更长(字符之间的连字符的初始字符串)。 `

public static String stretch(String word){

    String longer = "" + word.charAt(0);

    for (int i=1; i<=word.length()-1; i++){
        longer += "-" + word.charAt(i);
    }

    return longer;
}

2 个答案:

答案 0 :(得分:2)

以下是实现所需结果的三种不同方式,它们在性能和简单性方面按升序排列,即stretch3 &gt; stretch2 &gt; stretch1

import java.util.StringJoiner;

class Main {
  public static void main(String[] args) {
    System.out.println(stretch("test"));
    System.out.println(stretch2("test"));
    System.out.println(stretch3("test"));
  }

  // Using String Concatenation (bad)
  public static String stretch(String word) {
    String longer = "" + word.charAt(0);
    for (int i = 1; i < word.length(); i++) {
      longer += "-" + word.charAt(i);
    }
    return longer;
  }

  // Using StringBuilder (good)
  public static String stretch2(String word) {
    StringBuilder longer = new StringBuilder(word.substring(0,1));
    for (int i = 1; i < word.length(); i++) {
      longer.append("-" + word.charAt(i));
    }
    return longer.toString();
  }

  // Using StringJoiner (best)
  public static String stretch3(String word) {
    StringJoiner longer = new StringJoiner("-");
    for (int i = 0; i < word.length(); i++) {
      longer.add(word.substring(i,i+1));
    }
    return longer.toString();
  }
}

<强>输出:

t-e-s-t
t-e-s-t
t-e-s-t

试试here!

答案 1 :(得分:0)

尝试在字母(而不是单词)之间插入连字符

"test sample".replaceAll("\\w(?=\\w)", "$0-");

输出-> t-e-s-t s-a-m-p-l-e