gpt4 book ai didi

java - 奇怪的是,即使值看起来匹配,也总是返回 false

转载 作者:行者123 更新时间:2023-11-29 08:06:05 25 4
gpt4 key购买 nike

我有这个方法

获取参数

public int getParam(String paramName){

if(paramName.equals("Balls and net")){
expressionParam=1;
}
else if(paramName.equals("Balls and bat")){
expressionParam=2;
}
else if(paramName.equals("Without balls")){
expressionParam=3;
}
else if(paramName.equals("Team Sport")){
expressionParam=4;
}
else{
expressionParam=-1;
}

return expressionParam;
}

但是由于某些奇怪的原因,if 条件中的 equals 总是返回 false,并且该方法总是返回 -1

我在跟随按钮监听器中调用这个方法

JButton btnNewButton = new JButton("    OK   ");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Object[][] matrix=(((MyTableModel) table.getModel()).getDatamatrix());
List<Expression> list=new LinkedList<Expression>();
for (int i = 0; i <elem; i++){
Expression e=new Expression(getSport((matrix[i][0]).toString()), getParam((matrix[i][1]).toString()), getSport((matrix[i][2]).toString()));
list.add(v);


}catch...

并使用 println 验证传递给 getParams 的值是否匹配。

那么这个方法有什么问题呢??

最佳答案

您很可能有尾随或前导空格。 trim() 首先:

public int getParam(String rawParamName){
final String paramName = rawParamName.trim();

if(paramName.equalsIgnoreCase("Balls and net")){
//...

还要注意字符大小写。 Team sport 实际上会返回 -1。考虑改用equalsIgnoreCase()

最后,您可能会有不同数量或类型的空格,例如字符之间的两个空格或制表符。这需要更多的工作。

最后,如果您想更加灵活,请考虑使用 levenshtein distance .

关于java - 奇怪的是,即使值看起来匹配,也总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11170870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com