我是一个尝试学习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数组或提交可能的解决方法?
答案 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);
}
}