public class checkbox {
public static void choose(JSONObject data, String fieldName, String options, List<String> LIST) {
String text;
List<String> fieldList = Arrays.asList(StringUtils.blankToDefault(data.get(fieldName)).split(","));
if (fieldList.isEmpty()) {
text = options;
} else {
text = LIST.stream()
.map(element -> fieldList.contains(element) ? "☑" + element : "☐" + element)
.collect(Collectors.joining(" "));
}
data.put(fieldName, text);
}
public static void main(String[] args) {
JSONObject data = new JSONObject();
data.put("sourceType", "X射线,192Ir");
List<String> LIST2 = Arrays.asList("X射线", "192Ir", "75Se");
checkbox.choose(data, "sourceType", "☐ X射线 ☐ 192Ir ☐ 75Se", LIST2);
System.out.println(data.getString("sourceType"));
}
}
这段代码定义了一个名为checkbox
的类,其中包含一个名为choose
的静态方法。这个方法接收四个参数:一个JSONObject
对象data
,一个字符串fieldName
,一个字符串options
和一个字符串列表LIST
。方法的主要功能是根据data
中的fieldName
字段的值,生成一个新的字符串,并将其放回data
中。
具体来说,方法首先从data
中获取fieldName
对应的值,并将其分割成一个字符串列表fieldList
。如果fieldList
为空,则将options
赋值给text
。否则,遍历LIST
中的每个元素,如果该元素在fieldList
中,则在其前面添加"☑",否则添加"☐"。最后,将处理后的字符串拼接起来,并将结果放入data
的fieldName
字段中。
在main
方法中,创建了一个JSONObject
对象data
,并向其中添加了一个键值对,键为sourceType
,值为X射线,192Ir
。然后创建了一个字符串列表LIST2
,包含三个元素:"X射线"、"192Ir"和"75Se"。接着调用choose
方法,传入data
、sourceType
、options
和LIST2
作为参数。最后,输出data
中sourceType
字段的值。