0

我正在为学校做这个并且有一个问题 null 返回这里是所有代码如果你需要测试它

这是主要的

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

public class OddEvenTester
{
    public static void main( String args[] ) throws IOException
    {

        //Make a Scanner to read in data from OddEven.dat

        // while there is data 
            // read in a line
            // make an OddEvenSets object
            // print the object

            Scanner in = new Scanner(new File("OddEven.dat"));

            OddEvenSets a = new OddEvenSets();
            while (in.hasNextLine())
            {
                String n = in.nextLine();
                a.addString(n);
                System.out.println (a);
            }
    }
}

这是方法

import java.util.Set;
import java.util.TreeSet;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Scanner;

public class OddEvenSets
{
    private Set<Integer> odds;
    private Set<Integer> evens;
    private ArrayList<String> list;


     public OddEvenSets()
    {
        list = new ArrayList<String>();
    }

     public OddEvenSets(String input)
    {
        list = new ArrayList<String>();

        String[] words = "abc cde fgh ijk".split(" ");
        ArrayList<String> list = new ArrayList<String>(Arrays.asList(words));
    }

    public void addString(String input)
        {
            list.clear();
            String[] words = input.split(" ");
            this.list.addAll(Arrays.asList(words));
        }

        public Set<String> getEvens()
        {
            Set<String> evens = new TreeSet<String>();
            for (String a : list)
            {
                int x =Integer.parseInt(a);

                if (x % 2==0)
            {
                String b = Integer.toString(x);
                evens.add(b);
            }
            }
            return evens;
        }

        public Set<String> getOdds()
        {
            Set<String> odds = new TreeSet<String>();
            for (String a : list)
            {
                int x =Integer.parseInt(a);

                if (x % 2==1)
            {
                String b = Integer.toString(x);
                odds.add(a);
            }
            }
            return odds;
        }


    public String toString()
    {
        return "ODDS : " + odds + "\nEVENS : " + evens + "\n\n";
    }
}

这是dat文件

1 5 9 4 6 8 12
3 5 7 17 29 4 6 56 72
3 6 12 2 28 6
4 4 4 4 4 4 4 4 
1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 

代码编译并运行但打印 null 所以我认为它没有被正确添加

4

1 回答 1

0

您的代码实际上从未调用getOddsor getEvens,也许您打算编写如下内容:

public String toString()
{
    return "ODDS : " + getOdds() + "\nEVENS : " + getEvens() + "\n\n";
}
于 2013-09-24T00:15:25.220 回答