Java I';我对逻辑运算符感到困惑,有人能帮我收拾一下吗?多重论点?

Java I';我对逻辑运算符感到困惑,有人能帮我收拾一下吗?多重论点?,java,operators,logic,Java,Operators,Logic,这是我在这里的第一篇文章,但我经常使用这个网站来帮助我解决遇到的编码问题。我是一名中级Java程序员。我明年要上大学,我正在考虑辅修计算机科学 我正在制作一个非常基本的模拟信用卡验证器,它读取信用卡,检查它是否有效,然后通过电子邮件向用户发送信息。除教育目的外,不得将其用于任何其他目的 所以我有一段代码,可以检查有人输入的信用卡字符串的多个条件。例如,您将看到,它检查起始数字、卡的名称和位数。它检查条件,如果满足条件,程序将继续,如果不满足条件,程序将给出错误并立即停止。我99%确信我输入的信息

这是我在这里的第一篇文章,但我经常使用这个网站来帮助我解决遇到的编码问题。我是一名中级Java程序员。我明年要上大学,我正在考虑辅修计算机科学

我正在制作一个非常基本的模拟信用卡验证器,它读取信用卡,检查它是否有效,然后通过电子邮件向用户发送信息。除教育目的外,不得将其用于任何其他目的

所以我有一段代码,可以检查有人输入的信用卡字符串的多个条件。例如,您将看到,它检查起始数字、卡的名称和位数。它检查条件,如果满足条件,程序将继续,如果不满足条件,程序将给出错误并立即停止。我99%确信我输入的信息是正确的,但不管怎样,它都会给我错误,我在这里不知所措

对不起,如果我打字太多,我又是新来的。所以,我在这里寻求关于我的逻辑的帮助,谢谢

 if((cardType.equals("Visa") && card.substring(0).equals("4")) && (length == 13 || length == 16)){
  System.out.println("Thank you, next step");
  cardValid = true;
  }
if((cardType.equals("Master Card")) && (card.substring(0,1).equals("51") || card.substring(0,1).equals("52") || card.substring(0,1).equals("53") || card.substring(0,1).equals("54") || card.substring(0,1).equals("55")) && (length == 16)){
  System.out.println("Thank you, next step");
  cardValid = true;
  }
if((cardType.equals("American Express") && card.substring(0,1).equals("37") && length == 15)){
     System.out.println("Thank you, next step");
     cardValid = true;
     }

  if(cardValid != true){
  System.out.println("ERROR");
  System.exit(0);
  }
  }

您没有正确使用
子字符串
方法。要获取第一个字符作为子字符串,需要使用,以提供开始索引(包含)和结束索引(独占)

子字符串从指定的beginIndex开始,并延伸到索引endIndex-1处的字符

参数

beginIndex-开始索引,包含在内

endIndex-结束索引,独占

(从给定索引到字符串的其余部分获取一个子字符串。)

子字符串以指定索引处的字符开头,并延伸到此字符串的结尾

替换

card.substring(0).equals("4")

或者只是比较那里的角色

card.charAt(0) == '4'
接下来,要获得前两个字符,再次考虑结尾索引是独占的这一事实。替换

card.substring(0,1).equals("37")


您没有正确使用
子字符串
方法。要获取第一个字符作为子字符串,需要使用,以提供开始索引(包含)和结束索引(独占)

子字符串从指定的beginIndex开始,并延伸到索引endIndex-1处的字符

参数

beginIndex-开始索引,包含在内

endIndex-结束索引,独占

(从给定索引到字符串的其余部分获取一个子字符串。)

子字符串以指定索引处的字符开头,并延伸到此字符串的结尾

替换

card.substring(0).equals("4")

或者只是比较那里的角色

card.charAt(0) == '4'
接下来,要获得前两个字符,再次考虑结尾索引是独占的这一事实。替换

card.substring(0,1).equals("37")


您没有正确使用
子字符串
方法。要获取第一个字符作为子字符串,需要使用,以提供开始索引(包含)和结束索引(独占)

子字符串从指定的beginIndex开始,并延伸到索引endIndex-1处的字符

参数

beginIndex-开始索引,包含在内

endIndex-结束索引,独占

(从给定索引到字符串的其余部分获取一个子字符串。)

子字符串以指定索引处的字符开头,并延伸到此字符串的结尾

替换

card.substring(0).equals("4")

或者只是比较那里的角色

card.charAt(0) == '4'
接下来,要获得前两个字符,再次考虑结尾索引是独占的这一事实。替换

card.substring(0,1).equals("37")


您没有正确使用
子字符串
方法。要获取第一个字符作为子字符串,需要使用,以提供开始索引(包含)和结束索引(独占)

子字符串从指定的beginIndex开始,并延伸到索引endIndex-1处的字符

参数

beginIndex-开始索引,包含在内

endIndex-结束索引,独占

(从给定索引到字符串的其余部分获取一个子字符串。)

子字符串以指定索引处的字符开头,并延伸到此字符串的结尾

替换

card.substring(0).equals("4")

或者只是比较那里的角色

card.charAt(0) == '4'
接下来,要获得前两个字符,再次考虑结尾索引是独占的这一事实。替换

card.substring(0,1).equals("37")

以下几点应该行得通。 String.substring出现了一些语法错误。您可以参考以下java文档中字符串函数的完整列表:

以下几点应该行得通。 String.substring出现了一些语法错误。您可以参考以下java文档中字符串函数的完整列表:

以下几点应该行得通。 String.substring出现了一些语法错误。您可以参考以下java文档中字符串函数的完整列表:

以下几点应该行得通。 String.substring出现了一些语法错误。您可以参考以下java文档中字符串函数的完整列表:


如果你愿意的话,我可以添加其余的代码,大约300行。再次感谢。请注意,
if(cardValid!=true)
可以等效为
if(!cardValid)
。不过,吉特曼对你的问题有答案。只是为了提高效率,不要每次都用子串代替你的卡。使用以下内容中的前两个字符创建一个新字符串:string cardStart=card.substring(0,2);如果你愿意的话,我可以添加其余的代码,大约300行。再次感谢。请注意,
if(cardValid!=true)
可以等效为
if(!cardValid)
。不过,吉特曼对你的问题有答案。只是为了提高效率,不要每次都用子串代替你的卡。使用以下内容中的前两个字符创建一个新字符串:string cardStart=card.substring(0,2);