2017-03-29 1 views
-5

の側面を理解するいくつかの助けを必要とするすべてのは、このコード

import java.util.Scanner; 

public class Reverse { 

public static void main(String[] args) { 

    String words = ""; 
    String output = ""; 

    Scanner scan = new Scanner(System.in); 
    while (scan.hasNextLine()) { 
     words = scan.nextLine(); 

     for (int i = 0; i < words.length(); i++) { 
      output += words.charAt(words.length() - i - 1); 
     } 
     output += "\n"; 
    } 
    System.out.print(output); 


} 
} 

まず以下のコード、漠然としたタイトルのために申し訳ありませんが、私はそれ以外の方法置く方法を知りませんでした参照してください。私はJavaを初めて使い、uniのために、ファイルの最後まで標準入力を読み込んで各行の逆を出力するタスクを与えられました。

私は

String output 

が最後に出力複数の文字列にできているかと思いまして。 1つの文字列しか保持できないはずですか?この質問があまり意味をなさない場合は申し訳ありません。

+0

1つの文字列は、多くの行を含めることができます。各行は、プラットフォーム依存の行区切り記号で区切られます。通常は、改行( "\ n")または改行と改行( "\ r \ n")のいずれかになります。 –

答えて

0

1つの文字列には一連の文字を格納できます。あなたはこれを知らないかもしれませんが、 "新しい行"もまた文字です。

Hello World 
Bye World 

それは「さようなら世界」に続く改行文字、続く文字の「Hello World」と単なる文字列、です:これは、次のように単一の文字列に格納することができることを意味します。

Javaでは、改行文字は\nと表示されます。コードで

、あなたは空の文字列で始まる:だけの終了前に

output += words.charAt(words.length() - i - 1); 

String output = ""; 

その後のループで、あなたはそれとは逆の順序で文字を追加開始whileループの反復では、出力に新しい行を追加します。

output += "\n"; 
+0

ああ、あなたに感謝します。他の誰かからこのような否定的な反応は期待できませんでしたが、これはすべてをクリアします。再度、感謝します – mattprater

1

outputは複数の文字列を保持しません。文字列には、コード内に\nという複数の行を入れることができます。 \nを印刷すると、新しい行が印刷されます。これはまだ複数の行を含む1つの文字列です。

0

文字列はJavaの不変クラスです。不変クラスは、インスタンスを変更できないクラスです。インスタンス内のすべての情報は、インスタンスの作成時に初期化され、情報は変更できません。

public class ExampleString{ 

public static void main(String[] args) { 

    String examp=""; 
    examp="HI"; 
    examp=examp+"HOW"; 
    System.out.println(examp); 




} 
} 

出力:HIHOW