1

私はこのサイトを初めて使用し、Java の初心者です。私はプログラムを作成しています.5つの数字を取り込んで吐き出します。このコードが機能しないのはなぜですか? これは 2 の最初の .java です。問題があると思われる場所に印を付けました。

public class digitExtractor {
    int tNumber;
    String sNumber;

    // OP thinks the problem is here...
    public digitExtractor(int tNumber) {       


    }
    // ... and here
    public digitExtractor(String sNumber) {



    }

    public void returnInvertedOrderByMath() {
        int Integer1;
        int Integer2;
        int Integer3;
        int Integer4;
        int Integer5;
        Integer1 = (tNumber % 10);
        Integer2 = (tNumber % 100) / 10;
        Integer3 = (tNumber % 1000) / 100;
        Integer4 = (tNumber % 10000) / 1000;
        Integer5 = (tNumber % 100000) /10000;

        System.out.println(Integer1 + "\n" + Integer2 + "\n" + Integer3 + "\n" + Integer4 + "\n" + Integer5);
    }

    public void returnInvertedOrderByString() {
        char part1;
        char part2;
        char part3;
        char part4;
        char part5;
        part1 = sNumber.charAt(4);
        part2 = sNumber.charAt(3);
        part3 = sNumber.charAt(2);
        part4 = sNumber.charAt(1);
        part5 = sNumber.charAt(0);
        System.out.println(part1 + "\n" + part2 + "\n" + part3 + "\n" + part4 + "\n" + part5);

    }
}
4

3 に答える 3

0
int tNumber; // This is an instance variable as it belongs to the class
String sNumber;

// This is a constructor which takes an integer
public digitExtractor(int tNumber) {  // tNumber here is a parameter which is not the same as tNumber above. You can change the name of this parameter to anything you like     
    // "this" keyword tells us we are referring to instance variable and assigning the value of tNumber parameter to instance one
    this.tNumber = tNumber; 
}

public digitExtractor(String sNumber) {
    if (sNumber == null){
        this.sNumber = ""; // if null, let's put an empty string as default
    } else {
        this.sNumber = sNumber;
    }
}
于 2013-08-05T17:31:54.430 に答える
0

あなたが望むのは、コンストラクターでインスタンス フィールドを初期化することだと思います。

ではpublic digitExtractor(int tNumber)、ボディは次のようになります。

// assigning instance field with constructor's argument value
this.nNumber = tNumber; 

ではpublic digitExtractor(String sNumber)、ボディは次のようになります。

// assigning instance field with constructor's argument value
this.sNumber = sNumber; 

このようにして、初期化されたreturnInvertedOrderフィールドを参照DigitExtractorし、実行したい操作を実行します。

コードで参照する前に初期化されていない場合Stringは をスローするため、これはフィールドにとって特に重要であることに注意してください。NullPointerException

初期化されていない場合はintデフォルトになります0

于 2013-08-05T17:11:43.673 に答える