gpt4 book ai didi

java - Java中的 boolean 错误转换为字符串

转载 作者:行者123 更新时间:2023-12-02 10:57:49 27 4
gpt4 key购买 nike

Main.java:138: error: incompatible types: boolean cannot be converted to String
if(formatString(positions[index].equalsIgnoreCase(formatString(position))))
^
Main.java:160: error: incompatible types: boolean cannot be converted to String
if(formatString(players[index].equalsIgnoreCase(formatString(player))))

以上是错误。我想知道 bool(boolean) 值在哪里更改为String。

formatString()是一个方法
position []是一个字符串数组
 /**
* Method that finds the index of player by using the position
*
* @param position The position of the baseball player
* @return The index of the player at a certain position
*/
public int findIndex(String position)
{
int index = 0;
while(index < positions.length)
{
if(formatString(positions[index].equalsIgnoreCase(formatString(position))))
{
return index;
}
else
{
return -1;
}
}
}

/**
* Method that finds the player position by finding the name
*
* @param player The namee of the player
* @return The position that matches the players name
*/
public String findPlayerPosition(String player)
{
int index = 0;
while(index < players.length)
{
if(formatString(players[index].equalsIgnoreCase(formatString(player))))
{
return positions[index];
}
else
{
return "NONE";
}
}
}

formatString()方法
public String formatString(String oldString)
{
return (oldString.equals("") ? oldString : (oldString.trim()).toUpperCase());
}

formatString()方法对通过参数传递的字符串执行trim()和uppercase()。

最佳答案

我认为在if语句的条件下,您的问题就在这里:

if(formatString(positions[index].equalsIgnoreCase(formatString(position)))

让我们稍微扩展一下:

final boolean equivalent = positions[index].equalsIgnoreCase(formatString(position));
final boolean condition = formatString(equivalent);
if (condition) {
// ...
}

现在, positionStringformatString接受并返回 Stringpositions[index]StringequalsIgnoreCase比较 String。因此,第一行很好。

但是,第二行...在扩展形式中,很明显,您正在尝试使用 formatString调用 boolean。我们知道它应该接受 String,所以这就是正在报告的错误。但是,还有另一个问题- formatString返回 String,但是由于您将其用作 if语句的条件,因此它必须是 boolean

我认为将外部调用放在 formatString上可以解决您的问题。顺便说一句,因为“” .trim()。equals(“”),所以 formatString内部的三元运算符是不必要的。嗯,由于您使用的是 equalsIgnoreCase,所以 toUpperCase中的 formatString也很多余,所以为什么不

if (positions[index].equalsIgnoreCase(position))



更新:最初未提供 formatString。现在,此答案已被重写。

关于java - Java中的 boolean 错误转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55642539/

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