2012-04-26 36 views
-1

更新コード:何らかの理由でメソッドが機能しませんか?

import java.util.*; 

public class Main { 

/** 
* @param args 
*/ 
static int[] C; 
static int[] D; 
static String P; 

public static void main(String[] args) { 
    C = new int[10]; 
    D = new int[10]; 
    getNumber(); 
} 

private static void getNumber() { 
    System.out 
      .println("Enter your first number with spaces in between digits."); 
    Scanner S = new Scanner(System.in); 
    String O = S.nextLine(); 
    String[] A = new String[10]; 
    A = O.split(" "); 
    for (int X = 0; A.length > X; X++) { 
     C[X] = toNumber(A[X]); 
    } 
    String P = S.nextLine(); 
    String[] B = new String[10]; 
    B = P.split(" "); 
    for (int Y = 0; B.length > Y; Y++) { 
     C[Y] = toNumber(A[Y]); 
    } 
    System.out.print(C[0]); 
    remainders(); 
} 

private static void remainders() { 
    for (int A = 0; C.length > A; A++) { 
     if (D[1] * C[A] >= 10) { 
      Integer B = new Integer(D[1] * C[A]); 
      Character E = B.toString().charAt(0); 
      P.concat(E.toString()); 
     } 
    } 
    for (int A = 0; C.length > A; A++) { 
     if (D[0] * C[A] >= 10) { 
      Integer B = new Integer(D[1] * C[A]); 
      Character E = B.toString().charAt(0); 
      P.concat(E.toString()); 
     } 
    } 
    System.out.print(P); 
} 

private static int toNumber(String string) { 
    if (string.equals("0")) { 
     return 0; 
    } else if (string.equals("1")) { 
     return 1; 
    } else if (string.equals("2")) { 
     return 2; 
    } else if (string.equals("3")) { 
     return 3; 
    } else if (string.equals("4")) { 
     return 4; 
    } else if (string.equals("5")) { 
     return 5; 
    } else if (string.equals("6")) { 
     return 6; 
    } else if (string.equals("7")) { 
     return 7; 
    } else if (string.equals("8")) { 
     return 8; 
    } else if (string.equals("9")) { 
     return 9; 
    } else { 
     return 0; 
    } 
} 

} 

は、それが印刷し、最後の事はnullです。私はかなり問題がtoNumberメソッドであると確信していますが、何が間違っているのかわかりません。これ以外のコードに他の問題がある場合は、教えてください。助けてください。 編集:"0".equals(string):問題は、

+0

まず最初に、

int x = Integer.valueOf(a[X]); 

を使用し、あなたはこの 'の場合(文字列のように'のequals() 'メソッドのものを使用する必要があります。 2番目のことは、メソッド名でJavaの命名規則に従わないことです。あなたのメソッド 'GetNumber()'は 'getNumber()'と 'remainders()'のような 'Remainders()'のようになります。 – Lion

+0

この宿題ですか?もしそうなら、そのようにタグを付けてください。 – mc10

+0

あなたの質問にもっとわかりやすいタイトルを選択してください... –

答えて

6

stringは定数がこのように比較されn

+0

正しい!テスト文字列は常にstring.equals()で – Tobi

+0

固定されていますが、問題はRemainderメソッドにあるようです – Natecat

0

文字列であるかどうかをテストするstring.equals(n)メソッドを使用して、助けてください、残りの方法であると思われます。文字列リテラルは実際のStringオブジェクトであり、それらに対して任意のStringメソッドを呼び出すことができます。そして、変数はnullですが、定数が存在することが保証されているので、定数のメソッドを呼び出すほうがよいでしょう。 ホイールを改造する必要はありません。 Javaには豊富なSDKがあります。あなただけの数字0-9をしたい場合は 単に、単にテスト

if (0 <= x && x <= 9) { 
    //valid continue 
} else { 
    //invalid state handling 
} 
関連する問題