【发布时间】:2013-01-10 01:56:22
【问题描述】:
我的问题出在我的“NumberAnalyzer.java”类中,我应该能够使用“Number.java”类来确定 ArrayList 中的数字是否为奇数(以及稍后的偶数和完美数) ) 但由于“Number.java”中的“isOdd()”方法本身不会读取 int 或其他变量,我无法找到一种方法来测试每个数字以在“countOdds”方法中生成“oddCount” "NumberAnalyzer.java" 的数量增加以从 runner 类中生成字符串中奇数的个数。
NumberAnalyzer.java
import java.util.ArrayList;
import java.util.Scanner;
import com.sun.xml.internal.ws.api.pipe.NextAction;
import static java.lang.System.*;
public class NumberAnalyzer
{
private ArrayList<Number> list;
public NumberAnalyzer()
{
}
public NumberAnalyzer(String numbers)
{
list = new ArrayList<Number>();
String nums = numbers;
Scanner chopper = new Scanner(nums);
while(chopper.hasNext()){
int num = chopper.nextInt();
list.add(new Number(num));
}
chopper.close();
System.out.println(list);
}
public void setList(String numbers)
{
list = new ArrayList<Number>();
String nums = numbers;
Scanner chopper = new Scanner(nums);
while(chopper.hasNext()){
int num = chopper.nextInt();
list.add(new Number(num));
}
chopper.close();
}
public int countOdds()
{
int oddCount=0;
for(int i = 0; i < list.size(); i++){
if(Number.isOdd()== true){
oddCount++;
}
}
return oddCount;
}
public int countEvens()
{
int evenCount=0;
return evenCount;
}
public int countPerfects()
{
int perfectCount=0;
return perfectCount;
}
public String toString( )
{
return "";
}
}
Number.java
public class Number
{
private Integer number;
public Number()
{
}
public Number(int num)
{
number = num;
}
public void setNumber(int num)
{
number = num;
}
public int getNumber()
{
return number;
}
public boolean isOdd()
{
if(number%2==0){
return false;
}
return true;
}
public boolean isPerfect()
{
int total=0;
for(int i = 1; i < number; i++){
if(number%i==0){
total+= i;
}
}
return (number==total);
}
public String toString( )
{
String output = getNumber() + "\n" + getNumber()+ "isOdd == " + isOdd() + "\n" + getNumber()+ "isPerfect==" + isPerfect()+ "\n\n";
return output;
}
}
跑步者类
import java.util.ArrayList;
import java.util.Scanner;
import static java.lang.System.*;
public class Lab16b
{
public static void main( String args[] )
{
NumberAnalyzer test = new NumberAnalyzer("5 12 9 6 1 4 8 6");
out.println(test);
out.println("odd count = "+test.countOdds());
out.println("even count = "+test.countEvens());
out.println("perfect count = "+test.countPerfects()+"\n\n\n");
//add more test cases
}
}
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖SSCCE。
-
完成...(认为这就是您要问的)
-
一个 SSCCE 应该只有一个公共类和一个文件。它也应该按原样编译(不确定该批次是否可以,但直到它是一个类才愿意发现)。
-
从来没有办法让它成为一个单一的类,因为它与我保存的文件夹中的 3 个完全独立的 .java 文件相关联......我的问题是
-
“从来没有办法让它成为一个单一的类,因为它与 3 个完全独立的 .java 文件相关联”从未听说过匿名/内部类?跨度>
标签: java arrays list arraylist