1

文字列の場合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>

異なる文字列メソッドを使用していますか?

4

3 に答える 3

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

これにより、メッセージの残りの部分を行うために色が調整されます

于 2015-12-08T18:09:55.053 に答える
1

ここに行きます。基本的に、文字列を操作するために、 split()charAt() 、およびformat()の3 つの文字列関数を使用してい ます。

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

2番目のソリューションについても。色の配列の長さのチェックは含まれていません。十分な色があることを確認してください。

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

更新: 説明を追加

于 2012-09-15T11:46:24.083 に答える
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();

そして、あなたはそれで好きなようにすることができます。さまざまな色を取得するには、それらの色を保持する方法 (配列など) を決定し、それらにアクセスして文字列を適切に作成する必要があります。

于 2012-09-15T11:31:25.573 に答える