16

\rJavaでのキャリッジリターンと/fフォームフィードの意味は何ですか? これらのタイプのシンボルをいつ使用する必要があるかについて、誰かが小さな例を挙げてもらえますか?

System.out.println("hello world \r rafter \n nafter \f fafter");

上に何があるかわかりません。

私が得た出力は次のとおりです。

hello world 
 r-after 
 n-after  f-after

私は\r新しい行と新しい行を取得\n\f、ボックスが表示されます。

4

4 に答える 4

35

最新のアプリケーションでは、それらのいずれかを (単独で) 使用することはめったにありません。

\r(キャリッジ リターン) は、昔ながらの手動タイプライターに慣れている場合に聞こえるものです。「キャリッジ」(紙が送られるロール) を行の先頭に戻します。端末 (または同様のもの) では、(通常は) 行を下に移動せずに、出力ポイントを行の先頭に戻します。

\fは(あなたが言ったように)フォームフィードであり、昔ながらのプリンターに新しいページを開始するように指示します。コンピュータ ドキュメントでは、改ページを示すために使用されることがあります。

締めくくりとして、改行 (別名「改行」): もあります\n。これは「一行下に移動する」という意味です。一部の端末では、キャリッジ リターンを実行せずに 1 行下に移動します。他のものでは、両方を行います。

\n(LF, newline) は、*nix および派生オペレーティング システムの標準的なテキスト ファイルの改行です。\r\n(CRLF) は、DOS および Windows の標準的なテキスト ファイルの改行です。Mac OS X (*nix 派生) より前\rの Mac では、テキスト ファイルの標準的な改行が (それ自体で) 昔はありました。

于 2013-09-26T10:38:27.657 に答える
2

キャリッジ リターンとフォーム フィードは、端末またはプリンターの制御文字であり、Java ではまったく意味がありません。

ターミナル エミュレーションでは、\r を出力すると、次の文字が現在の行の最初の行に出力される可能性があります (既存の文字を上書きします)。

フォーム フィードを端末に出力すると、画面がクリアされる場合とクリアされない場合があります。プリンターでは、現在のページが排出されるため、新しいページで印刷が続行されます。

しかし、前に述べたように、端末 (エミュレーション) もプリンターも、制御文字が Java プログラムによって印刷されたかどうかは気にしません。

于 2013-09-26T10:41:03.510 に答える