2017-02-16 8 views
-2
import java.util.*; 
class abc 
{ 
public static void main(String[] args) 
{ 
    int sum=0,n=4,k=10,i,j; 
    char ch[] = new char[10]; 
    char ans[] = new char[19]; 
    Scanner sc = new Scanner(System.in); 
    try1 abc=new try1(); 
String a,b,c,d; 
a= sc.nextLine(); 
b= sc.nextLine(); 
c= sc.nextLine(); 
d= sc.nextLine(); 
int num1 = (int) Long.parseLong(a,16); 
int num2 = (int) Long.parseLong(b,16); 
int num3 = (int) Long.parseLong(c,16); 
int num4 = (int) Long.parseLong(d,16); 

sum = num1 + num2 + num3 + num4; 
String sumstart = Integer.toHexString(sum); 
System.out.println(sumstart); 
String temp=sumstart; 
ch = temp.toCharArray(); 
for (i=1, j=0;i<5;i++,j++) 
{ 
    ans[j] = ch[i]; 
    } 
    ans[j]='\0'; 
    System.out.println(ans); 
    String anssing = Integer.toHexString(ch[0]); 
     int num5 = (int) Long.parseLong(anssing,16); 
     String ans1 = new String(ans); 

     System.out.println("ans 1 "+ans1); 

     int num6 =abc.convert(ans1); 
     System.out.println("num 6 vaala "+num6); 
     int ans2 = num5 + num6; 
     String hex4 = Integer.toHexString(ans2); 
     System.out.println("hex4 vaala "+hex4); 

} 
} 
class try1 
{ 
    int convert(String a) 
    { 

    int num5 = Integer.parseInt("3f18",16); 
    System.out.println(num5); 
    return num5; 
    } 
} 

が任意の入力を検討intに文字列を変換しながら、例えばため:NumberFormatExceptionが

8fc6 
8fc6 
8fc6 
8fc6 

出力:

Numberformatexception 

Iは、char配列に進数を記憶された、私はそれを変換私は整数に変換しようとしていますが、NumberFormatExceptionを受け取りました。誰も私がそれを解決するのを助けることができる?

+0

を避けるために、文字列の入力を解析するInteger.parseIntを添加し、次いでint''にキャストしていますか?なぜ、最初からInteger.parseInt()をしていないのですか? – QBrute

+0

コードを実行しましたが、例外はありませんでした。しかし、出力は不器用さに似ていません。 – Sweeper

+0

@QBruteはintでも動作しません。 –

答えて

-1

これを試してみて、

import java.util.*; 
class abc 
{ 
public static void main(String[] args) 
{ 
    int sum=0,n=4,k=10,i,j; 
    char ch[] = new char[10]; 
    char ans[] = new char[19]; 
    Scanner sc = new Scanner(System.in); 
    try1 abc=new try1(); 
String a,b,c,d; 
a= sc.nextLine(); 
b= sc.nextLine(); 
c= sc.nextLine(); 
d= sc.nextLine(); 
int num1 = Integer.parseInt(a,16); 
int num2 = Integer.parseInt(b,16); 
int num3 = Integer.parseInt(c,16); 
int num4 = Integer.parseInt(d,16); 

sum = num1 + num2 + num3 + num4; 
String sumstart = Integer.toHexString(sum); 
System.out.println(sumstart); 
String temp=sumstart; 
ch = temp.toCharArray(); 
for (i=1, j=0;i<5;i++,j++) 
{ 
    ans[j] = ch[i]; 
    } 
    ans[j]='\0'; 
    System.out.println(ans); 
    String anssing = Integer.toHexString(ch[0]); 
     int num5 = (int) Long.parseLong(anssing,16); 
     String ans1 = new String(ans); 

     System.out.println("ans 1 "+ans1); 

     int num6 =abc.convert(ans1); 
     System.out.println("num 6 vaala "+num6); 
     int ans2 = num5 + num6; 
     String hex4 = Integer.toHexString(ans2); 
     System.out.println("hex4 vaala "+hex4); 

} 
} 
class try1 
{ 
    int convert(String a) 
    { 

    int num5 = Integer.parseInt("3f18",16); 
    System.out.println(num5); 
    return num5; 
    } 
} 

説明:私は、なぜあなたはlong` `に解析しているNumberFormatExceptionが

+0

何を試してみませんか? ( "3f18"、16)?それは動作していません。 –

+0

あなたが今取得している例外。これは与えられた入力8fc6に対して有効です。あなたのロジックを正しいものにする必要があります。 – dullpointer

+1

説明のないコードダンプは良い答えではありません。読者はすべての行をスキャンし、変更内容を視覚的に検出する必要があります。代わりに、あなたは何を変えなければならないと感じるのか、そしてなぜそれを説明しますか? – VGR

関連する問題