Java if语句未得到满足

时间:2012-04-27 13:50:43

标签: java if-statement

我的Java有点生疏了。我有一个包含多个值的数组,其中一个值用于if语句。

这是我正在检查的单个字符,而且它不起作用的事实让我相信它可能是一个空白问题。数据来自一个mysql数据库,我已经尝试在查询中使用trim()来删除任何空格,但没有运气。

以下是代码:

  Payoff payoff=new PlainVanillaPayoff(Option.Type.Put,Strike);
  if(inputData[8] == "C"){
      System.out.println("TypeCall"); // Check to see whether if stmt is ever true.
      payoff=new PlainVanillaPayoff(Option.Type.Call,Strike);
  } else{}

if语句中调用的print语句永远不会打印。

有什么建议吗?

7 个答案:

答案 0 :(得分:3)

这是因为您正在使用String比较==。您应该使用equals代替。

if(inputData[8].equals("C"))

答案 1 :(得分:3)

假设代码编译,问题是您要将字符串与==进行比较;你应该使用equals(有时你想要equalsIgnoreCase):

if(inputData[8].equals("C")){

Java中的字符串是对象==运算符比较对象标识(两个变量包含相同的对象引用),而不是对象的内容。

答案 2 :(得分:2)

如果inputData[8]是字符串,则应使用equals方法而不是==

if("C".equals(inputData[8]))

另外,首先放置"C"可确保在`inputData [8] 1为空时不会出现空指针异常。

答案 3 :(得分:1)

如果inputData是String[],则应使用inputdata[8].equals("C")。如果它不是String[],那么它永远不会满满,因为它们是不同的类型:)

答案 4 :(得分:1)

如果inputData的类型是String[],那么我猜您的问题是您正在比较引用而不是使用.equals() - 函数。

正确:

if(inputData[8].equals("C"))

答案 5 :(得分:0)

数组是字符串数组还是char数组?

在if子句中,您需要使用“与字符串进行比较时”或“使用char进行比较时”。

如果是字符串,请在if子句

中尝试这样的方法
stringname.charAt(x) == 'C'

答案 6 :(得分:-1)

如果inputData是一个字符数组?

if(inputData[8] == 'C') should solve it.

否则你可以试着看它是否确实包含" c"

Payoff payoff=new PlainVanillaPayoff(Option.Type.Put,Strike);
  if(inputData[8] == "C"){
      System.out.println("TypeCall"); // Check to see whether if stmt is ever true.
      payoff=new PlainVanillaPayoff(Option.Type.Call,Strike);
  } else{ System.out.println("inputData[8] contains: ->" + inputData[8] + "<-");}