【发布时间】:2017-09-10 14:40:54
【问题描述】:
你好,如果我想比较这个字符串:
private String str;
public String str() {
return str;
}
public void str(String str) {
this.str = str;
}
包含int的变量:
str = StringUtils.collectionToCommaDelimitedString(var);
var 是一个数组列表
List<Integer> var = new ArrayList<>();
在此列表中插入此结果:
for (int hour=0; hour<24; hour++) {
if (my conditions is ok) {
var.add(hour);}
并包含一个示例 var=[3,10,18],因此 str = [3,10,18],如果我想在我的方法中将此字符串与 0 - 23 小时数进行比较,如果等于每个小时,则返回 1 1 或 0。
@Override
public Map<String, Object> my() {
List<Integer> test = new ArrayList<>();
for (int hour=0; hour<23; hour++) {
if (.......... conditions TO DO){
test.add(1);
}
else {
test.add(0);
}
} }
在这种情况下我想做的测试结果的一个例子:
测试=[0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
【问题讨论】:
-
我将从重命名您的两个方法开始。拥有与你的字段同名的方法已经够糟糕了——拥有一个返回字段值的方法和另一个为该字段分配一个new值的方法,两者叫同一个东西,真是个坏主意。接下来,尚不清楚第一个代码与问题中的其他任何内容有什么关系。请提供minimal reproducible example 并尽可能清楚地说明您的问题。
-
将整数的字符串表示形式与某个字符串进行比较没什么大不了的。更有趣的是“为什么要这样比较”的问题?我会在心跳中重构它:你在那里得到了你的数值,使用它们作为索引来填充列表不是更容易吗?而不是将每个值与所有可能的排列进行比较?
-
另外,返回值是什么?
Map在哪里?