我正在尝试创建旋转颜色的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。 –