播放 - 为什么使用逗号将字符串从字符串拆分为列表不能正常工作?
Play- Why split a string using comma from string to list is not working properly?
我有一个只有一个值的字符串类型列表。在该字段中,值是这样的:
list1[0]:yes,no,never,drop out
有一些逗号。我必须用逗号将它们分开并将它们添加到不同的列表中,例如:
list2[0] : yes
list2[1] : no
list2[3] : never
list2[4] : drop out
为此,首先,我将 list1 转换为字符串,然后用逗号分隔它们并将它们保存在第二个列表中。
但是转换后的字符串是:
字符串:[是,否,从不,退出]
第二个列表终于是:
list2[0] : [yes
list2 [1] : no
list2[3] : never
list2[4] : drop out]
这是我的控制器代码:
@ExternalRestrictions("Edit Poll")
public static void editPoll(Long id){
PollDefination poll = PollDefination.findById(id);
flash("poll", "" + poll.id);
List<String> pollQuestionOption = PollQuestionOption.find("SELECT options from PollQuestionOption WHERE poll_id = ? ", poll.id).fetch();
for (int i = 0; i < pollQuestionOption.size(); i++) {
Logger.info("1st list : " + pollQuestionOption.get(i).toString());
}
String option = pollQuestionOption.toString();
Logger.info("string : " + option);
List<String> optionitem = Arrays.asList(option.split(","));
Logger.info("2nd list : " + optionitem);
List<String> questionType = new ArrayList<String>();
questionType.add(0,"Single Select");
questionType.add(1,"Multiple Select");
render(questionType,poll,pollQuestionOption,optionitem);
}
这是我的 html:
#{list items: optionitem, as:'optionitem'}
<div class="form-group">
<div class="addField">
<label for="inputEmail3" class="col-sm-1 control-label">1</label>
<div class="col-md-5">
<div class="input-group">
<input name="optionitem" type="text" class="form-control" id="optionitem" value="${optionitem}" placeholder="Option">
<span class="input-group-btn">
<button href="#" class="removeOption">
<i class="fa fa-times fa-2x text-danger" style="font-size: 18px" aria-hidden="true"></i>
</button>
</span>
</div>
</div>
</div>
</div>
#{/list}
现在值显示如下:
如何避免这种“[”和“]”?
改变
String option = pollQuestionOption.toString();
到
String option = pollQuestionOption.get(0).toString();
您的第一个列表是
List<String>_list0 = "yes,no,never,drop out"
这样做:
List<String> _list1 = Arrays.asList(_list0.get(0).split(","));
System.out.println(_list1.toString());
_list1.forEach(System.out::println);
并且您的新列表中将没有括号。 System.out 表明
我有一个只有一个值的字符串类型列表。在该字段中,值是这样的:
list1[0]:yes,no,never,drop out
有一些逗号。我必须用逗号将它们分开并将它们添加到不同的列表中,例如:
list2[0] : yes
list2[1] : no
list2[3] : never
list2[4] : drop out
为此,首先,我将 list1 转换为字符串,然后用逗号分隔它们并将它们保存在第二个列表中。
但是转换后的字符串是:
字符串:[是,否,从不,退出]
第二个列表终于是:
list2[0] : [yes
list2 [1] : no
list2[3] : never
list2[4] : drop out]
这是我的控制器代码:
@ExternalRestrictions("Edit Poll")
public static void editPoll(Long id){
PollDefination poll = PollDefination.findById(id);
flash("poll", "" + poll.id);
List<String> pollQuestionOption = PollQuestionOption.find("SELECT options from PollQuestionOption WHERE poll_id = ? ", poll.id).fetch();
for (int i = 0; i < pollQuestionOption.size(); i++) {
Logger.info("1st list : " + pollQuestionOption.get(i).toString());
}
String option = pollQuestionOption.toString();
Logger.info("string : " + option);
List<String> optionitem = Arrays.asList(option.split(","));
Logger.info("2nd list : " + optionitem);
List<String> questionType = new ArrayList<String>();
questionType.add(0,"Single Select");
questionType.add(1,"Multiple Select");
render(questionType,poll,pollQuestionOption,optionitem);
}
这是我的 html:
#{list items: optionitem, as:'optionitem'}
<div class="form-group">
<div class="addField">
<label for="inputEmail3" class="col-sm-1 control-label">1</label>
<div class="col-md-5">
<div class="input-group">
<input name="optionitem" type="text" class="form-control" id="optionitem" value="${optionitem}" placeholder="Option">
<span class="input-group-btn">
<button href="#" class="removeOption">
<i class="fa fa-times fa-2x text-danger" style="font-size: 18px" aria-hidden="true"></i>
</button>
</span>
</div>
</div>
</div>
</div>
#{/list}
现在值显示如下:
如何避免这种“[”和“]”?
改变
String option = pollQuestionOption.toString();
到
String option = pollQuestionOption.get(0).toString();
您的第一个列表是
List<String>_list0 = "yes,no,never,drop out"
这样做:
List<String> _list1 = Arrays.asList(_list0.get(0).split(","));
System.out.println(_list1.toString());
_list1.forEach(System.out::println);
并且您的新列表中将没有括号。 System.out 表明