2017-02-07 7 views
0

本質的に私はtxtファイルから読み込み、新しいファイルに暗号化されたコピーを書き出しています。教授は、すべての行の最後に、その行の終わりに0を追加して、あなたのプログラムがその行の終わりであることを知っていると言いました。例は以下のようになり文字列内の特定の文字に到達すると、どのようにprintlnするのですか?

THECATCRIES0

THEDOGCRIES0

問題は、私は私のコードを微調整するものに関係なく、私は本当に1上ので、私のコピー暗号化されたバージョン、すべてのプリントを追加行を印刷するように見えることができないということです長い行。

  for(int n = 0; n < first.length()-1; n+=2) { 
       String character = first.substring(n, n + 2); 
       alpha = character.charAt(0); 
       bravo = character.charAt(1); 
       firstLetter = (int)(alpha) - 65; 
       secondLetter = (int)(bravo) - 65; 
       File newFile = new File("newcopy.txt"); 

       PrintWriter write = new PrintWriter(new FileWriter(newFile, true)); 
       if(secondLetter < 10){ 
        write.print(firstLetter); 
        write.print(0); 
        write.print(secondLetter); 
        if(Character.isDigit(bravo) || Character.isDigit(alpha)){ 
         write.println(); 
        } 

       } else { 
        write.print(firstLetter); 
        write.print(secondLetter); 
        if(Character.isDigit(bravo)|| Character.isDigit(alpha)){ 
         write.println(); 
        } 

       }write.close(); 

私はそれをGoogleで検索すると、私はオンライン0が最後にありますのでtrueを返すブール値を返すisDigit方法を見つけましたが、次のように私のコードです。私はこのメソッドをif/elseステートメントの両方に配置しようとしましたが、通常のSystem.out.println()を使ってみましたが、私はPrintWriterを使って自分のものを新しいファイルに書き込んでいるので動作しないと思います。私はまた、私が "暗号化"しているものは、すべて大文字であることに注意する必要があります。それは私が暗号化された文字を数字に変換するときにその数字を得ることです。

+0

どうString.endsWith' https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#endsWith(java.lang.String '程度) –

+0

のみ問題はそれが0に達したときにだけ行を印刷する必要があるということです。私がその方法を使うと、終わりでなく毎回行を印刷すると信じています。 –

答えて

0

これはあなたが探しているものですか?

try(Stream<String> stream = Files.lines(Paths.get(newFile.toURI()))) { 
    stream.forEach(s -> {if(s.endsWith("0")) System.out.println(s);}); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
関連する問題