Category Archives: Java

[Java]Generics(泛型)

在Java中,有時候會遇到邏輯相似但型態可能不同的類別

例如: test1.java

test2.java

index.java

上面範例除了還要再新增一個class之外,如果遇到後續邏輯修改,也要重複將類似邏輯的class修完,非常的浪費時間

這時候使用泛型就可以解決上述的問題

generics.java

index.java

另外也可以限制泛型的類別,限制可以使用的類別()

Continue Reading

[Java]Package

在Java中也有一套套件的管理機制,透過關鍵字package可以將class歸類在特定的套件中

例如

編譯

使用

Continue Reading

[Java]DecimalFormat(小數格式)

在Java裡,要讓float或double型態輸出成整數或一定的格式,通常都會使用printf來控制

但有一種狀況是無法透過printf解決,例如有小數取到小數第三位,若是小數為0則省略

這時候就可以透過DecimalFormat這個物件來解決,精準的控制格式

Continue Reading

[DataStructure]Towers of Hanoi(河內塔)

河內塔是一個數學遊戲:有三個塔柱A、B、C,遊戲的目的就是將A塔柱的圓盤全數移到C塔柱

遊戲有幾個規則: 1. 一次只能搬移一個圓盤 2. 小圓盤可以移到大圓盤上面,大圓盤不可以移到小圓盤上面。

事實上,可以從河內塔移動次數中,發現這是有遞迴規則的。 以最小的圓盤 n 為例: 當圓盤總數為 1 時, n 移動了 1 次 當圓盤總數為 2 時, n 移動了 2 次 當圓盤總數為 3 時, n 移動了 4 次 當圓盤總數為 4 時, n 移動了 8 次

為了要讓大盤可以移出來到目的柱,當盤數越多,其他較小圓盤就必須先移到暫存柱(三柱其中一柱) 若有n個盤子,則移動完畢所需的次數為2^n – 1

Java

Continue Reading

[Java]Scanner next()與nextLine()無法同時使用問題

在Scanner中,有next()與nextLine()兩種方法 next()是以空白或換行為區格,nextLine()則是以換行為區格讀取整行

當一起使用時,會出現遇到nextLine()無法正常運作的問題 如以下程式碼

會這樣子的原因是因為next()是抓取空白或\n換行字元以前的字串,所以next()抓完字串之後\n就被nextLine()抓住了,因此nextLine()只有抓到\n而已,沒有抓到應該抓的字串。

解決方法就是不斷讓nextLine()重複抓取,直到抓到有字串為止:

Continue Reading