这是我的方法。它没有返回任何东西。请帮助,我不知道如何获得所需的字符串名称更长(字符之间的连字符的初始字符串)。 `
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;
}
答案 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