This class won't compile

I took a long break from learning Java and can't figure out what I'm missing in the code.

I'm trying to run a simple Luhn Algorithm to verify C.C.'s. Although anachronistic, I just wanted to start from somewhere.

Any assistance would be helpful. I'm using Netbeans 5.5.

publicabstractclass Luhn Algo{

privatestatic String getDigitsOnly (String s){

StringBuffer digitsOnly =new StringBuffer ();

char c;

for (int i = 0; i < s.length (); i++){

c = s.charAt (i);

if (Character.isDigit (c)){

digitsOnly.append (c);

}

}

return digitsOnly.toString ();

}

//-

// Perform Luhn check

//-

publicstaticboolean isValid (String cardNumber){

String digitsOnly = getDigitsOnly (cardNumber);

int sum = 0;

int digit = 0;

int addend = 0;

boolean timesTwo =false;

for (int i = digitsOnly.length () - 1; i >= 0; i--){

digit = Integer.parseInt (digitsOnly.substring (i, i + 1));

if (timesTwo){

addend = digit * 2;

if (addend > 9){

addend -= 9;

}

}

else{

addend = digit;

}

sum += addend;

timesTwo = !timesTwo;

}

int modulus = sum % 10;

return modulus == 0;

}

//--

// Test

//--

publicstaticvoid main (String[] args){

String cardNumber ="4408 0412 3456 7890";

boolean valid = LuhnCheck.isValid (cardNumber);

System.out.println (cardNumber +": " + valid);

cardNumber ="4408 0412 3456 7893";

valid = LuhnCheck.isValid (cardNumber);

System.out.println (cardNumber +": " + valid);

cardNumber ="4417 1234 5678 9112";

valid = LuhnCheck.isValid (cardNumber);

System.out.println (cardNumber +": " + valid);

cardNumber ="4417 1234 5678 9113";

valid = LuhnCheck.isValid (cardNumber);

System.out.println (cardNumber +": " + valid);

}

}

Am I missing some sort of import utility. I can't get to seem this program to run.

[3995 byte] By [WolfeTone32a] at [2007-11-27 11:22:32]
# 1

What exact problem are you having?

jverda at 2007-7-29 14:55:26 > top of Java-index,Java Essentials,Java Programming...
# 2

hi

public abstract class LuhnAlgo {

private static String getDigitsOnly (String s) {

StringBuffer digitsOnly = new StringBuffer ();

char c;

for (int i = 0; i < s.length (); i++) {

c = s.charAt (i);

if (Character.isDigit (c)) {

digitsOnly.append (c);

}

}

return digitsOnly.toString ();

}

//-

// Perform Luhn check

//-

public static boolean isValid (String cardNumber) {

String digitsOnly = getDigitsOnly (cardNumber);

int sum = 0;

int digit = 0;

int addend = 0;

boolean timesTwo = false;

for (int i = digitsOnly.length () - 1; i >= 0; i--) {

digit = Integer.parseInt (digitsOnly.substring (i, i + 1));

if (timesTwo) {

addend = digit * 2;

if (addend > 9) {

addend -= 9;

}

}

else {

addend = digit;

}

sum += addend;

timesTwo = !timesTwo;

}

int modulus = sum % 10;

return modulus == 0;

}

//--

// Test

//--

public static void main (String[] args) {

String cardNumber = "4408 0412 3456 7890";

boolean valid = LuhnAlgo.isValid (cardNumber);

System.out.println (cardNumber + ": " + valid);

cardNumber = "4408 0412 3456 7893";

valid = LuhnAlgo.isValid (cardNumber);

System.out.println (cardNumber + ": " + valid);

cardNumber = "4417 1234 5678 9112";

valid = LuhnAlgo.isValid (cardNumber);

System.out.println (cardNumber + ": " + valid);

cardNumber = "4417 1234 5678 9113";

valid = LuhnAlgo.isValid (cardNumber);

System.out.println (cardNumber + ": " + valid);

}

}

I simply change to your current class name, while calling isValid()

drvijayy2k2a at 2007-7-29 14:55:26 > top of Java-index,Java Essentials,Java Programming...
# 3

> public abstract class Luhn Algo {

Classnames must be a single word.

java_knighta at 2007-7-29 14:55:26 > top of Java-index,Java Essentials,Java Programming...
# 4

Thanks for your assistance fellows. It's been some time, and I have re-familiarize myself with many aspects of the programming language.

Best,

Stephen

WolfeTone32a at 2007-7-29 14:55:26 > top of Java-index,Java Essentials,Java Programming...