[英]How do I repeat a string where each character is repeated a decreasing number of times?
是的,我又回到了另一個 Java 問題。 所以在這里我應該重復一個字符串,它的字符重復次數減少。 第一個字符應該重復字符串的長度次數。
這是輸出應該是什么樣子的示例:
HHHHH
oooo
www
dd
y
根據我下面寫的代碼,我接下來應該做什么?
String go( String a)
{
String y = "";
for (int i = 0; i < a.length(); i++)
{
for (int j = 0; j < a.length(); j++)
{
y = y + a.charAt(i);
}
if (i == a.length() - 1)
{
y = y + "";
}
else
{
y = y + "\n";
}
}
return y;
}
隨意指出我犯過的任何明顯錯誤。 我是 Java 新手,剛剛了解到 Java 和 Javascript 不是一回事!
我們可以維護兩個計數器 - 一個用於從字符串中提取字符 (characterLoc),另一個用於指定字符重復的次數 (repCount)。
外循環用於提取字符,內循環用於將提取的字符重復指定次數。
public static void main(String[] args) {
String str = "Howdy";
int characterLoc = 0;
int repCount = str.length();
while (characterLoc < str.length()) {
for (int x = repCount; x > 0; x--) {
System.out.print(str.charAt(characterLoc));
}
characterLoc++;
repCount--;
System.out.println();
}
}
當我運行你在你的問題中發布的代碼時,我得到了這個結果:
HHHHH
ooooo
wwwww
ddddd
yyyyy
這不是你想要的。
為了得到你想要的東西,你只需要在你的代碼中做一個改變。 您需要更改內部for
循環。 這是帶有所需添加的代碼。
private static String go(String a) {
String y = "";
for (int i = 0; i < a.length(); i++) {
for (int j = 0; j < a.length() - i; j++) { // change here
y = y + a.charAt(i);
}
if (i == a.length() - 1) {
y = y + "";
}
else {
y = y + "\n";
}
}
return y;
}
當您運行該代碼時,它會產生以下輸出。
HHHHH
oooo
www
dd
y
這是你想要的,不是嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.