0

入力された数値を受け取り、偶数の位置にある値のみを追加するコードを書いています。

例えば:

ユーザーが 53429 を入力した場合 偶数の位置の合計は 5 です。

私の問題は、偶数位置の文字列を整数に戻してそれらを加算しようとしていることです。これは私が持っているものです

文字列を整数に解析しようとすると、エラーが発生し続けます。

    シンボルを見つけることができません
    symbol : メソッド parseInt(java.lang.String)
    場所: クラス Integer

コード:

import java.util.Scanner;


public class NumberSums { 
    public static void main(String [] args) { 

        Scanner keyboard=new Scanner(System.in); 
        System.out.print("Enter a number: "); 
        String x=keyboard.next(); 

        String s1 = x; 
        int length = s1.length(); 

        if (length<5) { 
            System.out.println("Invalid value"); 
            System.exit(0); 
        } 

        if (length>5) { 
            System.out.println("Invalid value"); 
            System.exit(0); 
        } 

        String s2 = s1.substring(0,1); 
        String s3 = s1.substring(1,2);
        String s4 = s1.substring(2,3); 
        String s5 = s1.substring(3,4);
        String s6 = s1.substring(4,5);

        int a = Integer.parseInt(s3);
        //int b = Integer.parseInt(s5);

        //sum = (a + b);

        System.out.println("The sum of all even positions is " + sum); 
    }
}
4

4 に答える 4

6

という名前のクラスがIntegerあり、Java は ではなくそれを使おうとしているに違いありませんjava.lang.Integer

クラスの名前を変更するか、java.lang.Integer.parseInt(s3)代わりに使用してください。

于 2013-09-23T18:33:42.723 に答える
2

文字列に偶数配置文字を追加するコード。

 String str="1234567";
        int sum=0;
        for(int i=1;i<str.length();i=i+2){
            sum+=(str.charAt(i)-'0');
        }
        System.out.println(sum);

また、キーボードから取得して計算を開始することもできます。

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Please enter number : ");
    String number=null;
    try{
        number = reader.readLine();
    } 
    catch (IOException e) {
        e.printStackTrace();
        throw e;
    }
    int sum=0;
    for(int i=1;i<number.length();i=i+2){
        sum+=(number.charAt(i)-'0');
    }
    System.out.println(sum);
于 2013-09-23T18:23:19.167 に答える
1

プログラムを実行したところ、正常に動作しました... 行int bsum = (a + b);. ただし、sum変数を宣言する必要があります。つまり、int sum = (a + b);

どのJDKを実行していますか? あなたが説明したエラーはInteger.parseInt(String foo);、存在しない場合にのみ発生しますが、少なくともJava 1.4以降は存在しているため、なぜ見つからないのかわかりません。同じパッケージに別のIntegerクラスが定義されている場合を除きます。これにより、コンパイラが混乱する可能性があります。

Integerこれは完全なプログラムで、インポート (異なるものをインポートする場合に問題になる可能性がありますjava.lang.Integer)、変数宣言の修正、不要なコードの削除、インデントの修正、およびScanner.close()ステートメントの追加を含みます。

import java.util.Scanner;

public class Test {
    public static void main(String [] args) 
    { 
        Scanner keyboard=new Scanner(System.in); 
        System.out.print("Enter a number: "); 
        String x=keyboard.next(); 

        String s1 = x; 
        int length = s1.length(); 

        if(length != 5) 
        { 
            System.out.println("Invalid value"); 
            System.exit(0); 
        } 

        String s3 = s1.substring(1,2);
        String s5 = s1.substring(3,4);

        int a = Integer.parseInt(s3);
        int b = Integer.parseInt(s5);

        int sum = (a + b);

        System.out.println("The sum of all even positions is " + sum); 

        keyboard.close();
    }
}
于 2013-09-23T18:23:41.867 に答える
0

変更されたコード。理解してみてください。

import java.util.Scanner;


public class EvenPos {

public static void main(String [] args) 
{ 

Scanner keyboard=new Scanner(System.in); 
System.out.print("Enter a number: "); 
String x=keyboard.next(); 

String s1 = x; 
int length = s1.length(); 

if(length<5) { 
    System.out.println("Invalid value"); 
    System.exit(0); 
    } 

if(length>5) { 
    System.out.println("Invalid value"); 
    System.exit(0); 
    } 

else{

char a = s1.charAt(1);
char b = s1.charAt(3);
int q = Character.getNumericValue(a); //Convert Char to Integer
int z = Character.getNumericValue(b); // //Convert Char to Integer

int sum = 0;
if (q % 2 == 0 && z % 2 == 0){ //If both even, then.....
    sum = q+z;
    System.out.println("Your sum: " + sum);
}
else{
    System.out.println("No even Number found at even POS");
}

}

} }

于 2013-09-23T18:43:45.573 に答える