1

私はJavaを学ぼうとしている初心者です。16 進数 - 10 進数コンバーターを作成するクラスのプロジェクトを行っています。すでに変換は完了していますが、16 進数の結果を出力すると、文字 (16 進数には AF が含まれているため) が小文字で出力されます。次のコードを試して、文字配列を読み取り、小文字を大文字にしました。

int i = Integer.parseInt(input);
String hex = Integer.toHexString(i);
char[] hexchar = hex.toCharArray();
for(int j=0; j<=hexchar.length; j++){
   if(hexchar[j].equals("a")){
     hexchar[j]=hexchar[j].toUpperCase();
} 
}

文字 af に対してこのコードを設定しようとしましたが、Char 配列を遅延できないというエラーが何度も発生します。char配列を読み取る方法があるかどうか、または可能な回避策を提出できるかどうかは誰にもわかりませんか?

4

4 に答える 4

3

toUpperCaseプリミティブである char には適用できません。これは String クラスのメソッドです。次のコードは、あなたが望むことをするはずです:

int i = Integer.parseInt(input);
String hex = Integer.toHexString(i).toUpperCase();
于 2012-08-31T23:10:04.707 に答える
0

これは完全にうまくいくはずではありません。

int i = Integer.parseInt(input);
    String hex = Integer.toHexString(i);
    System.out.println(hex);
    System.out.println(hex.toUpperCase());

すべての文字が af から AF に変更され、数値はそのまま保持されます。

于 2012-09-01T09:45:31.280 に答える
0

どうぞ:

import java.util.Scanner;

public class classy
{
    public static void main(String args[])
    {
        Scanner input = new Scanner( System.in );

        int i;

        System.out.println("Please enter an integer");
        i=input.nextInt();

        System.out.printf( "Your Integer  is  %d\n", i );


        String hex=Integer.toHexString(i).toUpperCase();
          System.out.println("Your Hexadecimal Number is  "+hex);
    }
}
于 2012-09-02T18:03:03.123 に答える
0

charプリミティブです。多分あなたは意味しましたCharacter.toUpperCaseか?

final int i = Integer.parseInt(input);
String hex = Integer.toHexString(i);
final char[] cs = hex.toCharArray();
for (int j = cs.length; j > 0; --j) {
  final char ch = cs[j];
  if (Character.isLetter(ch)) {
    cs[j] = Character.toUpperCase(ch);
  }
}
hex = new String(cs);

ただし、要点がわかりません。あなたは本当にただ使うべきなString.toUpperCaseので...

final String hex = Integer.toHexString(i).toUpperCase();
于 2012-08-31T23:15:46.797 に答える