我有一个我一直在努力的应用程序。该应用程序可通过属性文件进行配置,从中获取大部分变量。
此应用程序是一项调查,可能存在任何问题。
问题存储为数组,其中最大索引等于问题数。
我尝试了以下内容:
for(int noOfQuestToSet = 0; noOfQuestToSet<noOfQuest; noOfQuestToSet++)
{
String[] questionArr = new String[noOfQuestToSet];
questionArr = props.getProperty("Q" + noOfQuestToSet).toString();
}
这个想法是循环将使用整数来比较电子邮件noOfEmails
变量的数量(从属性文件中读取)。问题的关键语法是Q1=<question>
。
循环应使用设置为0的整数,将其与问题数进行比较,并将每个增量的数字附加到数组中。
答案 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: