我正在嘗試創建旋轉顏色的String
。每個字母都有不同的color
,他們需要以線性方式旋轉。文本將進入JLabel
。在字符串中旋轉顏色
我構建了文本,以便它可以創建一個單詞和一個顏色數組(字符串)。
String[] colors = {"white", "blue", "red"};
String word = "foo";
String coloredText;
String[] letters = word.split("(?!^)"); //split text into indiv. letters
coloredText = "<html>";
for(int i = 0, j = 0; i < letters.length; i++, j++){
if(j >= colors.length)
j=0;
coloredText += String.format("<font color='%s'> %s </font>", colors[j], letters[i]);
}
coloredText += "</html>";
這將導致具有FOO搭配白色F
,藍色O
和紅色最終O
的字符串。
當然,如果顏色比字母少,他們會繼續旋轉。
現在我有一個timer
來旋轉顏色,但我無法弄清楚algorithm
這樣做。 基本上,每種顏色都應該代替下面的一種,最後一種替代第一種。
因此,例如:
當然,這必須對任何給定數量的字母和顏色的工作,與不適合被忽略的顏色。 (10個顏色的3個字母的單詞將僅使用前3個顏色)。
我試過使用.replace()
,但regex
對我來說有點太難了。
有什麼想法?
保留用於字段中第一個字母的顏色索引,並在每次爲字符串上色時將其減少。如果它達到-1,則將其重置爲最後一個索引。第一輪是0,所以你最終會得到WBR。然後你減少它。因爲它變成-1,所以你把它設置爲2,並且你最終得到RWB。然後你減少它,你最終與BRW。 –