我已经写了下面的代码。这是一种将参数sig与字典进行比较的简单方法。我已经能够使代码正常工作,并且如果匹配,它将返回字典中的第一行。
但是我很难使代码循环。我不知道字典中有多少行,如果我确实使循环起作用,如何防止该方法继续读取字典中的第一行。我想知道是否应该尝试递归执行此操作。有小费吗?谢谢。
public static Set<String> signature2Words(String sig) throws FileNotFoundException{
try (Scanner s = new Scanner(new File("c:/Users/Green/documents/dictionary.txt")).useDelimiter("\\s*-\\s*")) {
String dictionary = new String(s.nextLine());
System.out.println(dictionary);
System.out.println(wordToSignature(dictionary));
if (sig.compareToIgnoreCase(wordToSignature(dictionary)) == 0){
System.out.println("match");
}
Set<String> set = new HashSet<>();
set.add(dictionary);
return set ;
}
}
答案 0 :(得分:0)
这里不需要递归。一个简单的 [formActionTypes.UPDATE_SECTION]: (state, action) => {
//ex. field-FieldName, value-"text1Updated", index=0, element="primaryText"
const { field, value, index, element } = action.payload;
return {
...state,
[field]: state[field].map((object, i) =>
i === index ? { ...object, [element]: value } : object
)
};
},
循环和一个while()
应该可以完成工作:
break