当前位置:编程学习 > JAVA >>

java 同在默认包中的不同类 第一个类用数组取的txt文件字符串 第二个类引用这个数组时始终为空值,如何解决

 
import java.io.*; 
/*(第2个类中引用的数组在第一个类中都设为了public static,且在第一个类中用println可以输出每个数组,但是第二个类引用时,println输出值始终为空或者0)注意,是在同一包中的不同的类文件引用,而不是同一个类文件中的不同类引用,请高手们指点下,偶是菜鸟,谢谢啦*/
 
public class tt { 

   
   public static float [][] sdis= new float[20][20];
   

  public static void main(String[] args) throws IOException {
  
  { 
    
     
    try{ int i=0;
      FileReader frd=new FileReader("c:\\111\\dist.txt");   
      BufferedReader brd=new BufferedReader(frd); 
      String ligned; 
      ligned=brd.readLine(); 
      while(ligned!=null){
          String[] sNumberd=ligned.split(" ");
          for(int j=0;j<sNumberd.length;j++){
           sdis[i][j]=Float.parseFloat(sNumberd[j]);
           System.out.println(sdis[i][j]);
        }
          System.out.println(i+"*******************");
          ligned=brd.readLine();
          i++;
      }
      
          brd.close();   
          frd.close();
    }catch(IOException Ie){
        System.out.println("sorry");
        Ie.printStackTrace();
    }

}



//下面是另一个类

import java.util.*;
import java.io.*; 


public class rr{


public static void main(String[] args){


System.out.println(tt.sdis[1]);

}}





--------------------编程问答-------------------- 楼主的 tt类(以后首字母要大写)变量sdis 的赋值是在main()函数里的,不调用miain()函数,sdis就是默认值。
要想得到内容,应先调用main()函数。
tt.main();
然后再看。 --------------------编程问答-------------------- 。。。这个程序暴强,用eclipse 都format 不了 --------------------编程问答-------------------- import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class TT {
public static float[][] sdis = new float[10][10];

static {

try {
int i = 0;
File file = new File("D:\\test.txt");
FileReader filereader = new FileReader(file);
BufferedReader brd = new BufferedReader(filereader);
String ligned;
ligned = brd.readLine();
while (ligned != null) {
String[] sNumberd = ligned.split(" ");
for (int j = 0; j < sNumberd.length; j++) {
sdis[i][j] = Float.parseFloat(sNumberd[j]);
System.out.println(sdis[i][j]);
}
System.out.println(i + "*******************");
ligned = brd.readLine();
i++;
}

brd.close();
filereader.close();
} catch (IOException e) {
System.out.println("sorry");
e.printStackTrace();
}
}
}

public class RR {

public static void main(String[] args) {

for(int i=0;i<TT.sdis.length;i++){
for(int j=0;j<TT.sdis[i].length;j++){
System.out.print(TT.sdis[i][j]+"、");
}
System.out.println();
}

}
} --------------------编程问答-------------------- java程序不是这样的,数组的赋值居然在main()方法了,别的类根本调用根本不会允许TT的main()怎么赋值?。文件的操作也有点小问题 --------------------编程问答--------------------
引用 4 楼 zxjian467571674 的回复:
java程序不是这样的,数组的赋值居然在main()方法了,别的类根本调用根本不会允许TT的main()怎么赋值?。


++;

把tt 类里主函数里面内容放到一个普通函数里面去,把主函数删除,因为是被调用类,所以不需要主函数

public class rr{


public static void main(String[] args){

new tt().hanshu();//hanshu()里的内容就是tt主函数里面的内容;

for(int i=0;i<TT.sdis.length;i++){
for(int j=0;j<TT.sdis[i].length;j++){
System.out.print(TT.sdis[i][j]+"、");
}
System.out.println();
}


}}
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,