質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

8669閲覧

java 出力文字の色を変更

Qingxuan

総合スコア7

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/08/27 06:47

編集2020/08/27 06:53

スケジュール表の内容を変更する機能なんですが、変更した部分を赤字で表示したいです。元のコードが以下の通りです。

public String fix(BoardForm form, Model model) { Schedule schedule = ScheduleRecord.selectSchedule(form.getName()); ScheduleRecord.setNewSchedule(new Schedule(form.getName(), form.getDest(), form.getTime(), form.getMemo())); if (!schedule.getDest().equals(form.getDest())) { form.setDest( "<font color:red>"+ form.getDest() + "</font>"); //行き先に変更があれば赤字で表示 } if (!schedule.getTime().equals(form.getTime())) { form.setTime( "<font color:red>" +form.getTime()+"</font>"); //時間に変更があれば赤字で表示 } if (!schedule.getMemo().equals(form.getMemo())) {  form.setMemo("<font color:red>" + form.getMemo()+"</font>"); //メモに変更があれば赤字で表示 } model.addAttribute("message", "登録または再入力ボタンを押してください。"); return "fix"; }

このままだと、<font color:red></font>が文字と一緒に出力されます。

調べてみると、ANSIエスケープコードという方法があるらしくて、試してみました。

public static final String ANSI_RESET = "\u001B[0m"; public static final String ANSI_RED = "\u001B[31m"; : : if (!schedule.getMemo().equals(form.getMemo())) {  form.setMemo(ANSI_RED + form.getMemo() + ANSI_RESET);

しかし、これもうまくいかず、例えばメモのところに66を入力すると、66が出力されます。
ちなみに、System.out.println()の時にANSIエスケープコードはうまくいきました。

どなたか力を貸してください。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決できました!
if (!schedule.getDest().equals(form.getDest())) {
form.setDest( "<font color:red>"+ form.getDest() + "</font>"); //行き先に変更があれば赤字で表示
}
if (!schedule.getTime().equals(form.getTime())) {
form.setTime( "<font color:red>" +form.getTime()+"</font>"); //時間に変更があれば赤字で表示
}
if (!schedule.getMemo().equals(form.getMemo())) {
form.setMemo("<font color:red>" + form.getMemo()+"</font>"); //メモに変更があれば赤字で表示
}

font color:red ではなくて、font color=redだったら行けました!

投稿2020/08/28 00:54

Qingxuan

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コードが違うようです。以下でうまくいくかと。

java

1 public static void main(String[] args) { 2 System.out.println("Normal."); 3 System.out.println(RED + "赤色がつく" + END); 4 5 } 6 7 static String RED = "\u001b[00;31m"; 8 static String END = "\u001b[00m";

投稿2020/08/27 15:47

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Qingxuan

2020/08/28 00:38

ご回答ありがとうございます!printlnはうまく出力できましたが、元のコードの場合はちゃんと出力できないです。。 static String RED = "\u001b[00;31m"; static String END = "\u001b[00m"; : if (!schedule.getMemo().equals(form.getMemo())) {  form.setMemo(RED + form.getMemo() + END); } 例えば”風邪”を入力したら、”[00;31m風邪”が出力されました。。これに関しては何かご存じですか?
Qingxuan

2020/08/28 00:39

なぜか逆方向の"/"が出力できないです
Qingxuan

2020/08/28 00:53

解決できました! if (!schedule.getDest().equals(form.getDest())) { form.setDest( "<font color:red>"+ form.getDest() + "</font>"); //行き先に変更があれば赤字で表示 } if (!schedule.getTime().equals(form.getTime())) { form.setTime( "<font color:red>" +form.getTime()+"</font>"); //時間に変更があれば赤字で表示 } if (!schedule.getMemo().equals(form.getMemo())) {  form.setMemo("<font color:red>" + form.getMemo()+"</font>"); //メモに変更があれば赤字で表示 } font color:red ではなくて、font color=redだったら行けました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問