2012-01-17 11 views
0

私はJavaコードを変更するプログラムを書いています。これは、次の行のブラケットシステムを行末のブラケットシステムに変更します。私はこれを行うStringを使用しています。ここに私のコードは次のとおりです。Javaソースコードを変更する

public static void main(String[] args) throws Exception 
{ 
    File file = new File("test.text"); 
    //PrintWriter output = new PrintWriter(file); 
    Scanner input = new Scanner(file); 

    System.out.println("Does it exist? " + file.exists()); 
    while(input.hasNext()) 
    { 
     String first = input.next(); 
     String second = input.next(); 

     if (first == "{") 
     { 
     second = first.replace("{", "\n{"); 
     System.out.println(second); 
     } 
     else 
     { 
     System.out.println(first); 
     } 
    } 
} 

私のtest.txtは、次のようになります。

"hello{ how are you{" 

これまでのところ、それだけでブラケットの前の単語を取り出します。ブラケットを新しい行に置くようにしています。

+2

これは学問的な練習ですか?いずれの場合でも、文字列は '=='ではなく 'String.equals()'と比較します。そして、あなたは '' {"'をチェックしたくないのですが、空白を除く前には何も置かずに '' {"'をチェックしたいと思います。それが楽しいだけではない場合は、Jalopy/etcを使用してください。 –

+0

最初のステップとして、私は開き中括弧の検出*に焦点を当てます。ファイルをそのまま出力するプログラムを作成してください。ただし、中括弧を含む各行の後ろにマーカーを表示する点が異なります。この演習の目的のために、 'first' /' second'の代わりに変数を1つだけ使用してください(私はこの段階で、彼らが助けている以上に混乱していると思います)。 – NPE

+0

これは私がやろうとしていることです。理論的には、 "hello"を印刷し、次の行にかっこを印刷する必要があります。 – Josh

答えて

0

first .equals("{");あなたは文字列を比較するときにを使用する必要があるあなたが.equals()を使用して文字列を比較する必要はない==

1

に等しいです。

しかし、比較する必要はありません。最初の文字列に{が含まれているかどうかを確認する必要があるため、containsを使用する必要があります。

編集:考えてみると、のいずれか、またはの2つの変数が必要ありません。 1つは、それを行う必要があります:

while(input.hasNext()) 
{ 
    String first = input.next(); 
    String second = first.replace("{", "\n{"); 
    System.out.println(second); 
} 
関連する問題