6

非常に基本的な RPG (現在はトップダウンの歩き回るゲーム) の場合、「保存」ファイルを読み取ってメモリに格納するメソッドを作成したいと考えています (保存は後で行います)。メソッドによって特定の行が読み取られないようにする方法を用意することで、ユーザーフレンドリーになり、変更などの指示を出すことができます。現在、% が先頭にある行を読み取らないようにする計画ですが、% が問題を引き起こす場合は変更される可能性があります。

保存形式自体は、圧縮された 1 つのブロックに収めたいと考えています。1 つまたは 2 つの英数字で、1 つの「タイル」の内容を表します。エリアのすべての画面に単純に 169 行を使用するのではなく、13*13 の圧縮されたブロックに配置したいと思います (これもユーザーフレンドリーにするためです)。

基本的に、どのようにすればよいですか a) 行が % で始まるかどうかを検出する b) その場合は次の行にスキップする c) そうでない場合は、一度に 2 文字を読み取り、文字列配列にコピーする d) 空白行をスキップする

BASIC IO は理解できますが、文字と行の両方で読み取る方法を見つけることができませんでした。

4

3 に答える 3

3

個人的には、a を使用しBufferedReaderてファイルを 1 行ずつ個々のStringオブジェクトに読み込み、内容を検査します。巧妙な名前のメソッドを使用して、行がコメント文字で始まるかどうかを確認し、 を使用String.startsWith("%")して行内の個々の文字を取得するString.charAt(index)か、 を使用して二重文字を取得できString.substring(start, start+2)ます。

于 2013-02-14T13:48:47.537 に答える
1

スキャナ クラスhttp://docs.oracle.com/javase/tutorial/essential/io/scanning.htmlを見てください。ほとんどの作業を実行できるはずです。

于 2013-02-14T13:43:17.910 に答える
0

スキャナーで行ごとに読み取り、最初の数文字を解析し、必要に応じて続行します。例:

Scanner lineReader = new Scanner(new FileReader(filename));
Scanner parser;
while (scanner.hasNextLine()){
  parser = new Scanner(scanner.nextLine());
  if(parser.hasNext())){ //checks for blank line
    String firstWord = parser.next();
    if(/*Check for %*/)
      continue;
    else
      //parse as you will
  }
}
于 2013-02-14T13:47:59.560 に答える