為什么一直不能通過?
我真的是找不出問題了,為什么不能通過呀?
public class HelloWorld {
? ? public static void main(String[] args) {
// 創(chuàng)建一個(gè)空的StringBuilder對(duì)象
StringBuilder str=new StringBuilder();
? ? ? ??
// 追加字符串
str.append("jaewkjldfxmopzdm");
? ? ? ? // 從后往前每隔三位插入逗號(hào)
? ? ? ? for(int i=str.length()-1 ; i >=0 i=i-3 ){ ? ? ? ? ? ? ? ? ? ?
? ? ? ?
? ? ? ? ? ? str.insert(i,",");
? ? ? ??
? ? ? ? // 將StringBuilder對(duì)象轉(zhuǎn)換為String對(duì)象并輸出
System.out.print(str.toString());
}
}
2016-12-12
你這是for循環(huán)那里沒有學(xué)好。
for(變量初始化值,條件,變量如何變化的)這是循環(huán)的三個(gè)條件
這道題要求的是對(duì)字符串倒著插入‘,’號(hào),那我們就得把字符串倒著循環(huán)輸出就可以了。如歌題中要求是正著插入‘,’號(hào),那我們就把字符串正著循環(huán)輸出就可以。
總結(jié),也就是要求倒著對(duì)字符串操作,我們就先倒著循環(huán)輸出字符串。反之,同理
那這道題中,要求是對(duì)字符串倒著并且每隔三位插入一個(gè)逗號(hào)
對(duì)字符串倒著循環(huán)輸出
定義變量初始化值,首先int i=str.length()指的是變量i的值為字符串的長(zhǎng)度。那樣int i=str.length()-3指的就是變量i的值為字符串倒數(shù)第三的位置
條件。也就是變量i需要循環(huán)到什么時(shí)候停下來。那就是當(dāng)i=1的時(shí)候要停下來,也就是i>0;因?yàn)樽址拈L(zhǎng)度是從1開始的不能為0
變量是咋變化的。這個(gè)是根據(jù)題目要求而定。題中要求我們倒著每隔三位插入一個(gè)逗號(hào),上面提到第一個(gè)插入逗號(hào)的位置是在str.length()-3這個(gè)位置,那第二次插入的位置就應(yīng)該是i-6.也就是i的值在上一次的基礎(chǔ)上減去3.所以變量i=i-3,也就是每次都減少3
2016-12-01
字符串的末尾本來就沒讓你有逗號(hào)。必須int i=str.length()-3或者直接int i=13;可以i-=3也可以i=i-3
2016-11-21
? ?? for循環(huán)錯(cuò)了,改為 for(int i=str.length()-3 ; i >=0 i=i-3 )就可以了,這樣初始就是從后數(shù)3位出加,號(hào)
2016-11-19
蟈蟈前來回答!
首先粘貼正確代碼:
StringBuilder str=new StringBuilder();
str.append("jaewkjldfxmopzdm");
? ? ? ?for(int i=str.length() ; i >0; i=i-3 ){ ? ? ? ? ? ? ? ? ??
? ? ? ? ? ?str.insert(i,",");
? ? ? ?}
System.out.print(str.toString());
我認(rèn)為前面的回答:
在循環(huán)前先int n=str.length();for(int i=n-3;i>=0;i=i-3)
是不對(duì)的,因?yàn)閯傞_始下標(biāo)就減3,那么字符串的末尾就不會(huì)有逗號(hào)了。
這里應(yīng)該注意,第一次插入位置應(yīng)該是str.length(),而不是str,length() - 1; 而最后的插入位置必須大于0,也就是不能插入到字符串的頭部!
其實(shí)這道題目比較有意思,因?yàn)樵诓迦脒^程中字符串的長(zhǎng)度其實(shí)是一直在變化的,但是我們并沒有處理這個(gè)情況,而結(jié)果也是正確的。但如果要求從前往后每隔3個(gè)位置插入,那么套用之前的循環(huán)代碼就會(huì)出錯(cuò)(可以思考一下原因是為什么)。我覺得慕課這樣出題應(yīng)該是在降低題目的難度。
2016-11-10
那個(gè)循環(huán)你寫錯(cuò)了吧,str.length長(zhǎng)度在運(yùn)行后是變化的。在循環(huán)前先int n=str.length();
for(int i=n-3;i>=0;i=i-3)