我需要写一个Java方法,要求输入一个字符串和数字n,返回原字符串且字符串中的每个单词重复n遍。类似于:
> Project.repeatWords("How are you?', I asked.", 2)
"How How are are you you?', I I asked asked."
只能使用循环,StringBuilder, String, 和Character中的方法写这个程序,想知道应该怎么写。
感激不尽
我需要写一个Java方法,要求输入一个字符串和数字n,返回原字符串且字符串中的每个单词重复n遍。类似于:
> Project.repeatWords("How are you?', I asked.", 2)
"How How are are you you?', I I asked asked."
只能使用循环,StringBuilder, String, 和Character中的方法写这个程序,想知道应该怎么写。
感激不尽
题主看下能懂不
public static String repeatWords(String str, int n) {
// 存放单词
StringBuilder word = new StringBuilder();
// 存放最终结果
StringBuilder ret = new StringBuilder();
// 遍历每个字符
char[] chars = str.toCharArray();
for (char aChar : chars) {
// 如果是字母就放到单词里面
if (Character.isUpperCase(aChar) || Character.isLowerCase(aChar)) {
word.append(aChar);
continue;
}
// 到这一步,当前字符就不是字母,是其他字符了
// 如果单词里面有内容就把内容重复N遍追加到结果中
if (word.length() > 0) {
// 第一次放不需要加空格
ret.append(word);
for (int i = 1; i < n; i++) {
ret.append(" ").append(word);
}
// 重复玩清空单词容器
word.delete(0, word.length());
}
// 把当前这个非字母字符追加到结果中
ret.append(aChar);
}
return ret.toString();
}