簡體   English   中英

如何從另一個類獲取字符串變量

[英]How to get a string variable from another class

2類中有2個main

  • New_String類用於從我的文件中讀取文本文件。
  • Write類用於顯示從New_String類讀取的值S1(=ar[1])

但是,無論我如何嘗試, Write類僅顯示null ,否則將引發NullPointerException錯誤。

由於該程序在下一步中具有進一步的功能,因此我不能僅將2類組合在一起。 請告訴我如何調整。

write

public class write
{
    //public static String getar=get.ar[1];
    //getar = get.ar[];
   public static void main(String args[]) throws IOException
   {
     New_string file = new New_string();
     //site.readline
     System.out.println(file.S1);
     //String S1 = ar[1];

   }
}

New_string

import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
public class New_string
{
    public static String S1;
    public static int a=0;
    public static String ar[];
    public static int lnum=0;
    public static String line=null;
    public static void main(String args[]) throws IOException
    {
     FileReader fr= new FileReader("read_listflow.txt");
     BufferedReader br=new BufferedReader(fr);

     while ((line=br.readLine())!=null)
     {
         lnum=lnum+1;
     }

     FileReader fr1= new FileReader("read_listflow.txt");
     BufferedReader br1=new BufferedReader(fr1);
     ar=new String[lnum];

     while ((line=br1.readLine())!=null)
     {
         ar[a]=line;
         a=a+1;
     }

     S1 = ar[1];
     }
}

實例化類時,不會自動調用main方法。 您需要顯式調用class方法來完成工作。

你必須做這樣的事..

public class NewString
{
    public static String S1;
    public static int a=0;
    public static String ar[];
    public static int lnum=0;
    public static String line=null;

    public String read() throws IOException
    {
    FileReader fr= new FileReader("read_listflow.txt");
    BufferedReader br=new BufferedReader(fr);
    while ((line=br.readLine())!=null)
    {
        lnum=lnum+1;
    }

    FileReader fr1= new FileReader("read_listflow.txt");
    BufferedReader br1=new BufferedReader(fr1);
    ar=new String[lnum];
    while ((line=br1.readLine())!=null)
    {
        ar[a]=line;
        a=a+1;
    }
    S1 = ar[1];
    return S1;
    }

}

接着

public class Write
{

   public static void main(String args[]) throws IOException
   {
     New_string file = new New_string();

     System.out.println(file.read());
   }
}

另外,請遵循Java命名約定

最簡單的解決方案是在New_string類中添加一個讀取的方法,並在您的write類中調用該方法,我已經完成了更改

public class write
    {
        //public static String getar=get.ar[1];
        //getar = get.ar[];
    public static void main(String args[]) throws IOException
       {
        New_string file = new New_string();
          file.read()
         //site.readline
         System.out.println(file.S1);
         //String S1 = ar[1];

       }
    }

import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
public class New_string
{
    public static String S1;
    public static int a=0;
    public static String ar[];
    public static int lnum=0;
    public static String line=null;
public read(String args[]) throws IOException
   {
     FileReader fr= new FileReader("read_listflow.txt");
     BufferedReader br=new BufferedReader(fr);
     while ((line=br.readLine())!=null)
     {
     lnum=lnum+1;
     }

     FileReader fr1= new FileReader("read_listflow.txt");
     BufferedReader br1=new BufferedReader(fr1);
     ar=new String[lnum];
     while ((line=br1.readLine())!=null)
     {
     ar[a]=line;
     a=a+1;
     }
     S1 = ar[1];
     }
}

錯誤的代碼,但是下面的代碼會很臟:)

public class write
{

    public static void main(String args[]) throws IOException  {
        New_string.main(mull);
        System.out.println(New_string.S1);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM