【问题标题】:Skipping white space in java在java中跳过空格
【发布时间】:2019-03-22 01:10:18
【问题描述】:

所以我只是想办法完成我的 java 项目,但我在跳过空白时遇到了麻烦。除了这个,我几乎得到了所有方法。如果有人可以帮助我理解如何让 FileInputStream 跳过空格,那么我终于可以完成这个项目了。只是停留在这一部分。这个类的目的(不只是完成方法然后清理它)是接收一个文件(ASCII文本艺术)并“放大”一个完美的正方形。谢谢你

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

public class makeBiggerTesting {
    public static void main(String[] args) {
        String fileName = "";
        Scanner keyBoard = new Scanner(System.in);
        System.out.print("Enter fileName: ");
        fileName = keyBoard.nextLine();

        try {
            int zoom = 9;
            int i = (int) Math.sqrt((double) zoom);
            //Scanner fileScan = new Scanner(fileName);
            FileInputStream inputStream = new FileInputStream(fileName);
//          while(inputStream.available() > 0) {
//              char input = (char) inputStream.read();
//              System.out.print((char) input);
//              
//              }
//          System.out.println("");
            while(inputStream.available() > 0) {
            char input = (char) inputStream.read();

            for(int row = 1; row <= i; row++) {

                for(int col = 1; col <= i; col++) {
                    System.out.print((char) input);
                }
                System.out.println("");
            }
            }

        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

}

这是其中一个文件的样子:

@ @

output:
@@@ @@@
@@@ @@@
@@@ @@@

应该是这样的。但我明白了

@@@ (Bunch of space)@@@
@@@                 @@@
@@@                 @@@

当我运行程序时,它变成了一团糟,所以我认为它也在放大空白区域。不过我可能是错的

【问题讨论】:

  • 请发布示例输入和输出。我认为您的文件不是“10 11”
  • 你说得对,这个新的更好吗?
  • 这似乎更好。
  • 可以省略,记住上次的输出,如果是空格,现在输出空格,忽略当前输出。但是我认为您提出问题的想法不正确,如果“图像”最初包含空间怎么办?这是一个 X - Y 问题吗?
  • 首先,请不要使用InputStream.available(),它确实按照您的想法行事。要确定您是否已到达流的末尾,请检查read() 调用的返回值并将其与-1 进行比较。 stackoverflow.com/questions/3695372/…

标签: java whitespace filereader


【解决方案1】:

我不确定我是否完全理解您的问题。你是否在追求类似的东西

public class makeBigger {
    public static void main(String[] args) {
        Scanner keyBoard = new Scanner(System.in);
        System.out.print("Enter fileName: ");
        String fileName = keyBoard.nextLine();
        int zoom = 9;
        int i = (int) Math.sqrt((double) zoom);         
        try(FileInputStream inputStream = new FileInputStream(fileName)){
            int input = -1;
            String line = "";
            while ((input = inputStream.read()) > 0 ) { 
                if((char)input == ' ') {
                    line += (char) input;
                }else if(input == 10 || input == 13) {                      
                    for (int col = 1; col <= i; col++) {                                
                        System.out.println(line);                           
                    }   
                    line = "";
                }else {
                    line += new String(new char[i]).replace("\0", ""+(char)input);
                }                       
            }
            if(! "".equals(line)) {
                for (int col = 1; col <= i; col++) {                                
                    System.out.println(line);                           
                }   
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {               
            e.printStackTrace();
        }
    }
}

【讨论】:

  • @Someoneneedshelp 如果这个答案真的对你有帮助,你可以点击那个勾号来接受他的答案:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 2019-12-27
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多