0

こんにちは皆さん、私は学校で1か月前に始めたばかりなので、コーディングはかなり新しいです。私たちのプロジェクトは、ゲームを構築することです。私のゲームでは、テキスト ファイルから配列に読み取った質問があります。タブと改行を \t と \n で変更してフォーマットしました。コードをコピーしてSystem.out.printlnに貼り付けるだけで完璧に機能します。しかし、テキスト ファイルで実行しようとすると、\t と \n を使用して入力したとおりに出力されます。

例 テキストファイル(1行のみ)

言葉遊びは一般的にどのように説明されますか? \n\t\tA) パン\t\t \t\t\tB) ピン\n\t\tC) ペン\t\t \t\t\tD) パン

printステートメントに入れられた場合の出力

言葉遊びは一般的にどのように説明されますか?
A)パン B)ピン
C)ペン D)パン

リストされたコードからの出力

言葉遊びは一般的にどのように説明されますか? \n\t\tA) パン\t\t \t\t\tB) ピン\n\t\tC) ペン\t\t \t\t\tD) パン

**import java.util.Scanner;
import java.io.*;
public class ImportFile {
    public static void main(String[] args) throws Exception{
        Scanner easyfile = new Scanner(new File("src/EasyQuestions.txt"));
        System.out.println(easyfile.nextLine());
    }
}**
4

3 に答える 3

1

\nと\tは、それぞれ改行文字とタブ文字を示すためにJava文字列で使用されるエスケープシーケンスです。

ただし、これらの文字シーケンスを含むファイルからテキストを読み取る場合、エスケープシーケンスを読み取るのではなく、文字通りそれぞれ2文字、前者の場合は「\」と「n」、「\」と「t」を読み取ることになります。後者では。

やったことを元に戻し、ファイルから「\n」と「\t」を削除して、実際の改行とタブを元に戻したいと思います。

于 2012-05-04T03:09:12.730 に答える
0

\tおよび\nは、Javaコードの行の途中に改行を入れることができないために必要なエスケープシーケンスです。

// This doesn't work in Java.
String s = "One line
            the next line";

ただし、読み込んだファイルには、問題なく次の文字を含めることができます。

One line
        the next line

したがって、ファイルからテキストを読み取る場合、Javaは、検出した文字をエスケープしようとはしません。ファイル\tが意味を示したときに、それが意味するものであると想定します。\tTab

タブ文字と改行文字に置き換える場合は、自分で行う必要があります。String.replace ()メソッドは開始するのに適した場所です。\t\n

于 2012-05-04T03:09:26.100 に答える
0

すでにコメントで述べたように、Javaはテキストから「\t」のようなテキストを「\t」として読み取ります。String#replace(...)「\t」を「\t」に戻すために使用することを検討してください

于 2012-05-04T03:09:45.327 に答える