[英]How to repeat each of the individual letters in a piece of text? in Java
就像在口吃的情况下,如果文本为“ dean”且乘数为3,则由提供的乘数指定的次数,结果将为“ dddeeeaaannn”。
public static void repeatLetters()
{
String text = "dean";
int n = 3;
StringBuilder repeat = new StringBuilder(text);
for (int i = 0; i < n; i++)
{
repeat.append("dean");
}
System.out.println(text);
}
没有得到所需的结果。 我究竟做错了什么?
两个问题:
您不是在打印已经操作过的String,而是在打印最初使用的原始String,即"dean"
。 要从StringBuilder打印字符串,可以使用
System.out.println(repeat);
您将整个单词"dean"
到原始单词,而不是添加单个字母/字符。 您需要遍历原始单词中的每个字母,并将这些字母添加到空的StringBuilder
。 这是您应该开始使用的基本逻辑:
StringBuilder
StringBuilder
。 StringBuilder
打印字符串。 您只需在字符串的末尾附加单词“ dean”三遍。
尝试改为遍历dean单词中的每个字符并将该字符附加三次。
这样的东西(这是伪代码):
StringBuilder repeat = new StringBuilder();
ForEach( letter in "dean" )
For( int i = 0 ; i < 3 ; i++ )
repeat.add(letter);
Return repeat
您在这里重复整个单词..一个可能的解决方法是
public static void repeatLetters()
{
String text = "dean";
int n = 3;
StringBuilder repeat = new StringBuilder();
for (int i = 0; i < text.length() ; i++)
{
for (int j= 0; j< n; j++)
repeat.append(text.charAt(i));
}
System.out.println(repeat);
}
您只需要为字符串中的每个字符添加n次字符串本身。 您需要遍历字符串,并将每个字符追加n次。
public static void repeatLetters()
{
String text = "dean";
int n = 3;
StringBuilder repeat = new StringBuilder();
for (int i = 0; i < text.length(); i++) {
for (int j = 0; j < n; j++) {
repeat.append(text.charAt(i));
}
}
System.out.println(repeat);
}
另外,另一种解决方案是使用正则表达式。
public static void repeatLetters()
{
String text = "dean", replace = "";
int n = 3;
for (int i = 0; i < n; i++) replace += "$1";
System.out.println(text.replaceAll("(.)", replace));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.