使用String - Names的多个数组输入

时间:2013-04-05 02:12:26

标签: java arrays

我需要编写一个程序,让用户输入导师姓名列表。最多只能雇用10名同伴辅导员。然后,程序将根据按姓氏按字母顺序排列的列表显示每个名称。这是我到目前为止所做的,但它不起作用,我不知道该怎么做。我需要它继续运行,直到我停止它并继续更多的程序。

import javax.swing.JOptionPane;
import java.util.Arrays;


public class Report {

    public static void main(String[] args) {

          int numTutors = 10;
          String[] listNames = getTutorNames();
    }

    public static String[] getTutorNames() {

          String firstName;
        String lastName;
        String[] listNames = new String[10];

        for (int x = 0; x < listNames.length; x++) {
            firstName = JOptionPane.showInputDialog(null, "Enter Tutor's First Name: ");
            lastName = JOptionPane.showInputDialog(null, "Enter Tutor's Last Name: ");

            if (firstName.equals("")) &&  lastName.equals("")) {
                break; // loop end
            }
            listNames[x] = lastName + ", " + firstName;
        }
        return listNames;
    }
}

2 个答案:

答案 0 :(得分:2)

嗯,这是第一次。当我编辑代码时,IntelliJ没有正确格式化代码,我很快发现了这个错误列表。请记住 - 代码甚至不会编译,更不用说运行,直到修复它们为止。

  • int numTutors无处不在。如果要定义它,则在方法调用之外执行此操作并将其设置为适当的值。

    public static void main(String[] args) {
        int numTutors = 10;
        String[] listNames = getTutorNames(numTutors);
    }
    
  • 这些声明无效:

    String = firstName;
    String = lastName;
    

    您需要在String=之间使用某种变量名称。

    您也没有将合同与您传入getTutorNames的内容相匹配 - 您传入的内容或您接受的内容必须更改。我认为这是后者。

  • 您无法使用==来比较String。您 使用.equals()。这导致我...

  • 你的休息时间不在你的循环中。将它移到循环内。

    for (int x = 0; x < listNames.length; x++) {
        firstName = JOptionPane.showInputDialog(null, "Enter Tutor's First Name: ");
        lastName = JOptionPane.showInputDialog(null, "Enter Tutor's Last Name: ");
        if (firstName.equals(" "))&&lastName.equals(" ")){
            break; // loop end
        }
    }
    

    ..和 引导我...

  • 您不会将值放在循环中的任何位置!你只是运行相同的代码十次!将它们放入阵列中。

    // after you check to see if the firstName and lastName are blank
    listNames[x] = firstName + lastName; // I don't know what you want to do with them from here.
    
  • 数组没有.add()。以上是如何将元素输入数组。

  • 您的return完全在您的方法块之外。将其移到您的方法中。


现在,这些是我能找到的问题。处理编译问题首先,然后可以讨论代码逻辑中的错误。如果可以,请抓住一个安静的时刻并确保您理解变量声明和String比较。我强烈推荐the Java wiki tag中的阅读材料。

答案 1 :(得分:0)

很抱歉为这个小而且你的

做出了回答
If (firstName.equals("")) && lastName.equals("")) { 

应替换为

If ((firstName.equals("")) && lastName.equals(""))) {