2012-09-15 72 views
1

如果string Java is Great!話,我怎麼能做出這樣的:如何在字符串中插入顏色標記? (JAVA)

<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> 

使用不同的字符串方法?

+1

你是指控制檯上的輸出嗎? – Baz

+5

這是用於HTML輸出嗎?還是控制檯?或搖擺?或者是其他東西?字符串本身是純文本,沒有格式。 – Thilo

+0

''標籤? BRRR。爲自己和你的用戶一個忙,並切換到CSS,''已被棄用AGES。 – fvu

回答

1

爲此,您需要逐個訪問字符串中的每個字符。你可以通過創建一個簡單的循環,如本:

for(Character c: myString.toCharArray()){ 

    } 

,因爲你正在操縱一個字符串,可以建議在這裏使用StringBuilder。在循環之前,你可以創建一個LIK ethis:

StringBuilder sb = new StringBuilder(); 

要添加標籤周圍的字符在循環中,你可以這樣做:

sb.append("<font color=\"color1\">"); 
    sb.append(c); 
    sb.append("</font>"); 

循環後你會得到這樣的新的字符串:

String result = sb.toString(); 

你可以隨心所欲地做它。爲了獲得不同的顏色,你必須決定如何保持這些顏色,比如說在一個數組中,然後訪問它們來適當地構建字符串。

+0

逃脫你的報價! – Eric

+0

謝謝@Eric。再次複製並粘貼危險。 –

+0

謝謝!問題現在解決了。 –

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(); 

更新: 加解釋

+0

謝謝你ManojGumber,你真的發佈了我一直在尋找的東西。請給我解釋一下這些代碼的含義:'String [] message = msg.split(「\\ s +」);''和's.append(String.format(「%s「,colors [i],msg.charAt [i]);' –

+0

@ user1439416我已添加詳細信息...請告知我是否需要進一步幫助 – ManojGumber

+0

非常感謝!字符串是'Man'oj「Gumber'然後如何使它成爲'ManojGumber'?我使用了.replaceAll,但它對''char無效。任何實際的解決方案。 –

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); 

這樣就可以調整顏色做其餘留言