■掲示板に戻る■
全部
1-
101-
201-
301-
401-
501-
601-
701-
最新50
再帰的な処理とは
- 1 :大和 : 2009/09/30 20:15
- public class Test {
public static void main(String[] args) {
Test main = new Test();
main.reflexiveVerb(0);
}
void reflexiveVerb(int counter) {
this.counter++;
if (this.counter <= 10) {
return;
}
reflexiveVerb(this.counter);
}
}
こういうことか('ω')。
- 2 :アヌス : 2009/04/11 22:46
- かざっさん。long型の整数にコンマいれるのって Stringに変換してからじゃないと できない?
9999 だと 9,999
1023004567 だと 1,023,004,567
っていうふうにしたいんだ
- 3 :大和 : 2009/04/11 23:27
- 整数しか代入できないのでString型にしてからじゃないと無理っぽそうだね!
- 4 :アヌス : 2009/04/12 00:24
- でも数字3つおきにコンマいれるのはわかるんだけど、左から3つずつかぞえるよね。しかしインデックスは左から始まるよね
"," + str.substring(length-4, length-1);
こうしてもコンマは一番最初についちゃうし・・・左からじゃ3つ数えたらいかんし。
なんかアイデアあります?
- 5 :アヌス : 2009/04/12 00:25
- あ、組み合わせは 解決しました^^
- 6 :大和 : 2009/04/12 10:22
- 組み合わせ解決したの!?
さすが!
- 7 :大和 : 2009/04/12 10:31
- >>4
思いついたのは,
文字を逆さにして,3つずつ数えてコンマを挿入。
終わったらまた文字を逆さにして元通りにする,とどうかなー。
「100040」なら「040001」にして,
「040,001」にして元に戻して「100,040」とか!
[1]
StringBufferクラスにreverse()メソッドってのがあるねえ。
StringBuffer sb = new StringBuffer("I am Kakitama.");
String myName = sb.reverse().toString();
出力結果:「.amatikaK am I」
[2]
自分でメソッドを作っちゃうとかかなあ。
forループで数字1つずつ抜き取って逆さにして,
3つずつコンマを挿入して,またforループで逆さにして元に戻す。
でしょうか!
- 8 :アヌス : 2009/04/12 16:46
- forループ使っちゃいけないことになってるんだよね・・・
一つアイデアが。
整数を3桁ごとにコンマを入れるわけだから、1000で割り、その商の次にコンマを入れて、あまりをまた1000で割りコンマをいれるって やり方
public static String intWithCommas(long n) {
String str = "";
if(n<1000){
return String.valueOf(n);
}else{
str = "," + String.valueOf(n%1000);
System.out.println(str);
}
return intWithCommas(n/1000) + str;
}
- 9 :アヌス : 2009/04/12 17:18
- しかしこれには一つ問題が
1000で割るのはいいんだけど、余りのぶぶんでは、0は無視されてしまう
1007を1000で割ると、商は1、だから1の次にコンマ。しかし余りは7なので、結果は1,7が導き出される。本来は00を省略せずに1,007と出したいんだけど・・・
割る値が1000だとしたら、欲しい結果は1,000。しかし1000で割った余りは0だから1,0となってしまう。
余りで0を省略せずにすむ方法あるかな?
- 10 :大和 : 2009/04/12 21:20
- 携帯からごめんね。
余りが1桁なら0を2つ付け足す。2桁なら0を1つ付け足す。
って処理はどうだろうか!
254 KB
続きを読む
掲示板に戻る 全部
次100 最新50
read.php ver2.4 2005/04/13