, необходимо получить эмитент карты вместе с номером, только выходы «Неизвестно». (внизу только код тестера). Я пытаюсь проверить неправильную переменную, я неправильно использую indexOf()? пожалуйста, любая помощь будет оцененаПринимая номер кредитной карты и выставляя фирменное наименование
public class CreditCard
{
private String card_number;
private boolean is_number;
private String number_string = "";
public String issuer_name = "";
public CreditCard(String card_number)
{
this.card_number = card_number;
}
public String toString()
{
for (int x = 0; x < card_number.length(); x++)
{
char y = card_number.charAt(x);
is_number = Character.isDigit(y);
if (is_number)
{
number_string += y;
}
}
String s = number_string + " was issued by " + getIssuer();
return s;
}
public void setIssuer(String issuer)
{
issuer_name = issuer;
}
public String getIssuer()
{
String issuer_Name;
if (card_number.indexOf('4') == 0 && card_number.length() == 13 || card_number.length() == 16)
{
issuer_Name = "VISA";
}
if (card_number.indexOf('3') == 0 && card_number.indexOf('0') == 1 && card_number.indexOf('0') == 2 && number_string.length() == 14)
{
issuer_Name = "Diner's Club";
}
if (card_number.indexOf('3') == 0 && card_number.indexOf('0') == 1 && card_number.indexOf('5') == 2 && number_string.length() == 14)
{
issuer_Name = "Diner's Club";
}
if (card_number.indexOf('3') == 0 && card_number.indexOf('6') == 1 && card_number.length() == 14)
{
issuer_Name = "Diner's Club";
}
if (card_number.indexOf('3') == 0 && card_number.indexOf('8') == 1 && card_number.length() == 14)
{
issuer_Name = "Diner's Club";
}
if (card_number.indexOf('3') == 0 && card_number.indexOf('4') == 1 && card_number.length() == 15)
{
issuer_Name = "American Express";
}
if (card_number.indexOf('3') == 0 && card_number.indexOf('7') == 1 && card_number.length() == 15)
{
issuer_Name = "American Express";
}
if (card_number.indexOf('5') == 0 && card_number.indexOf('1') == 1 && card_number.length() == 16)
{
issuer_Name = "MasterCard";
}
if (card_number.indexOf('5') == 0 && card_number.indexOf('5') == 1 && card_number.length() == 16)
{
issuer_Name = "MasterCard";
}
if (card_number.indexOf('6') == 0 && card_number.indexOf('0') == 1 && card_number.indexOf('1') == 2 && number_string.indexOf('1') == 3 && number_string.length() == 16)
{
issuer_Name = "Discover";
}
else
{
issuer_Name = "Unknown";
}
return issuer_Name;
}
public static void main(String[] args)
{
System.out.println(new CreditCard("42225-22222222"));
System.out.println(new CreditCard("76009644571"));
System.out.println(new CreditCard("50197170-10103742"));
System.out.println(new CreditCard("6331101899890016"));
}
}
Это не javascript – zerkms
Кажется, что это 'Java'. –
Согласно вашей программе, выход может быть только «* Discover *» или «* Unknown *». Не имеет значения, выполняются ли предыдущие условия или нет, последний 'if-else' перезаписывает переменную. –