首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >锯齿阵列并发症

锯齿阵列并发症
EN

Stack Overflow用户
提问于 2022-05-18 22:01:29
回答 1查看 21关注 0票数 -1

3 /**/ 17 39 82 108 117 8 25 47 58 63 72 99

我有这些号码。他们按下面的程序向现场宣读资料。

代码语言:javascript
复制
public class RaggedArray {


   /**/
      private int [][] rag;
      /**/
      public static void main ( String [] arg ) {
        System.out.println( new RaggedArray() );
        return;
      }
      /**/
      public RaggedArray() {
        initFromFile("rag.txt");
      }
      /**/
      public String toString () {
        /**/
        String lf;
        /*
         *  lf == line-feed character
         */
        lf=System.lineSeparator();
        /*
         *  Provide needed code here.
         */ 

      }
      /**/
      private void initFromFile ( String fileName ) {
        /**/
        FileInput fi;
        int numRows;
        /**/
        fi=new FileInput(fileName);
        numRows=fi.readLineInt();
        rag=new int [numRows][];
        fi.readLine();
        for ( int i=0; i<numRows; ++i ) rag[i]=fi.readLineInts();
        fi.close();
        /**/
        return;
      }
    }

到目前为止,这就是我所拥有的

代码语言:javascript
复制
rag=new int [4][] 
    for (int i=0; i<rag.length; ++i ) {

在宽度为4的字段中,每个int都应该是对齐的。老实说,只有当代码中包含了数字时,我才知道如何做到这一点。但是数字在另一个文件里。有人知道吗?

EN

回答 1

Stack Overflow用户

发布于 2022-05-18 23:10:02

您可以将文件内容读取到一个数字数组中,然后使用该数组填充二维数组。

代码语言:javascript
复制
private int[] readNums(File file){
    
    try(BufferedReader br = new BufferedReader(file)){
        
        String line;
        if(line = br.readLine() != null){
            String split = line.split(" ");
            int[] ints = new int[split.length()];
            for(int i = 0; i<split.length(); i++){
                ints[i] = Integer.parseInt(split[i]);
            }
            return ints;
        }

    } catch(Exception e){
        //catch what's needed
    }

    return null;
}

然后根据需要处理数字。例如,如果我正确地理解了如果要将它们放在宽度为4的二维数组的最右边,则可以这样做。

代码语言:javascript
复制
private int[][] fillArray(int[] input){
    
    int[][] intArray = new int[4][input.length()];
    for(int i=0; i<input.length(); i++){
        intArray[4][i] = input[i];
    }

    return intArray;
}

使用流或现代库也可以编写得更简单,但为了简单起见,我省略了它。如果你想让我知道我也可以加进去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72296474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档