如果字符串是Java is Great!
,那我怎么能这样做:
<font color="red">Java</font> <font color="blue">is</font> <font color="yellow">Great!</font>
每种颜色的颜色值应该不同。
同样,如何对所有单词执行此操作,例如:
<font color="color1">J</font>
<font color="color2">a</font>
<font color="color3">v</font>
<font color="color4">a</font>
<font color="color5"> </font>
<font color="color6">i</font>
<font color="color6">s</font>
<font color="color7"> </font>
<font color="color8">G</font>
<font color="color9">r</font>
<font color="color10">e</font>
<font color="color11">a</font>
<font color="color12">t</font>
<font color="color13">!</font>
使用不同的String方法?
答案 0 :(得分:2)
很简单,试试这段代码:
private final static String RED_COLOR_OPEN = "<font color=\"red\">";
private final static String RED_COLOR_CLOSE = "</font>";
并在您的方法中:
StringBuffer sb = new StringBuffer();
sb.append(RED_COLOR_OPEN).append(BOLD_OPEN).append(title).append(BOLD_CLOSE).append(".").append(RED_COLOR_CLOSE).trimToSize();
sb.append(BREAK);
这将调整颜色以完成剩余的信息
答案 1 :(得分:1)
要执行此操作,您需要一次访问一个字符串中的每个字符。您可以通过创建一个简单的循环来实现:
for(Character c: myString.toCharArray()){
}
由于您正在操作字符串,因此建议在此处使用StringBuilder。在循环之前,您可以创建一个类似的:
StringBuilder sb = new StringBuilder();
要在循环中的字符周围添加标记,您可以执行以下操作:
sb.append("<font color=\"color1\">");
sb.append(c);
sb.append("</font>");
在循环之后,您将获得如下的新字符串:
String result = sb.toString();
你可以随心所欲地做。要获得不同的颜色,您必须决定如何保留这些颜色,比如在数组中,并访问它们以适当地构建字符串。
答案 2 :(得分:1)
在这里。基本上它使用三个字符串函数 - split(),charAt() 和format()来操纵字符串。
String[] colors = {"red","blue","yellow"};
//Store the message in string
String msg = "java is great";
//Split the msg into words using String#split() method.
//Use a regex \s+ to split the Message using space as delimiter
String[] message = msg.split("\\s+");
//Now each word in msg is available in message array.
//Iterate over each word to generate the required output format
StringBuilder s = new StringBuilder();
for(int i=0;i<message.length;i++)
{
//use the String#format() method to get the required format for String
s.append(String.format("<font color=\"%s\">%s</font>",
colors[i],message[i]);
}
String output = s.toString();
也适用于第二种解决方案。没有包含颜色数组长度检查。确保你有足够的颜色。
String[] colors = {"red","blue","yellow"};
String msg = "java is great";
StringBuilder s = new StringBuilder();
for(int i=0;i<msg.length();i++)
{
s.append(String.format("<font color=\"%s\">%s</font>",colors[i],msg.charAt[i]);
}
String output = s.toString();
更新: 添加说明