试图通读java中的字符数组

时间:2012-08-31 23:05:51

标签: java string char

我是一个尝试学习java的新手。我正在为我的班级做一个项目,我们正在创建一个十六进制十进制转换器。我已经完成了转换,但是当我打印出十六进制结果时,字母(因为十六进制包含A-F)以小写形式打印出来。我尝试了以下代码来读取字符数组并大写任何小写字符:

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();
} 
}

我打算为字母a-f设置这个代码,但我不断得到的错误是Char数组不能延迟。有没有人知道是否有办法读取char数组或提交可能的解决方法?

4 个答案:

答案 0 :(得分:3)

您无法将toUpperCase应用于char,这是一个原语:it is a method of the String class。以下代码应该执行您想要的操作:

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

答案 1 :(得分: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();

答案 2 :(得分:0)

这不应该完全正常。

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

它会将所有字符从a-f更改为A-F 并保持数字完整。

答案 3 :(得分: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);
    }
}