将属性文件中的键读入数组

时间:2015-02-12 16:26:16

标签: java

我有一个我一直在努力的应用程序。该应用程序可通过属性文件进行配置,从中获取大部分变量。

此应用程序是一项调查,可能存在任何问题。

问题存储为数组,其中最大索引等于问题数。

我尝试了以下内容:

for(int noOfQuestToSet = 0; noOfQuestToSet<noOfQuest; noOfQuestToSet++)
        {
            String[] questionArr = new String[noOfQuestToSet];
            questionArr = props.getProperty("Q" + noOfQuestToSet).toString();
        }

这个想法是循环将使用整数来比较电子邮件noOfEmails变量的数量(从属性文件中读取)。问题的关键语法是Q1=<question>

循环应使用设置为0的整数,将其与问题数进行比较,并将每个增量的数字附加到数组中。

2 个答案:

答案 0 :(得分:0)

你需要解释更多,你要做什么,以及你的变量是什么。 那里的电子邮件是什么?什么是Question键的语法?以及getProterty()如何工作。 最后,你想达到什么目的?如果你想要一个包含所有问题的数组,可能如下所示:

String[] questionArr=new String[noOfQuestToSet];
for (int i=0;i<noOfQuest;i++){
    questionArr[i]=props.getProperty("Q"+i).toString();
}

如果您事先不知道确切的问题数,请使用List(ArrayList或LinkedList),您可以随时添加字符串,而无需知道列表的最终大小。

请阅读提问题的指南

答案 1 :(得分:0)

for(int noOfQuestToSet = 1; noOfQuestToSet<=noOfQuest; noOfQuestToSet++)
            {
                int i = noOfQuestToSet -1;
                questionArr = new String[noOfQuestToSet];
                String appendToIndex = String.valueOf(noOfQuestToSet);
                questionArr[i] = props.getProperty("Q"+appendToIndex);

                String[] answers= new String[noOfQuestToSet];
                do
                {
                    Scanner scnAnswer = new Scanner(System.in).useDelimiter("\\n");
                    System.out.println(questionArr[i]);
                    answers[i] = scnAnswer.next();
                    if(iCheckAnswerforNull(answers, i)==true)
                    {
                        System.out.println("Please ensure you enter an answer to each question");
                        continue;
                    }
                    System.out.println(finalMess);
                    //EmailSend sendEmail = new EmailSend();
                //  EmailSend.sendEmail(userName, answers);
                    break;
                }
                while(true);
            }   

在@meister_reineke的正确方向上进行了一些修补和分流之后,这是获取属性并将其附加到数组的工作循环(不使用ArrayLists: