⑴ java輸入一個字元,如果是字母,則輸出相應的ASCII值,如果是數字字元,則轉換成相應的數值輸出
代碼如下:
System.out.print("輸入一個字元:");
Stringstr=input.next();
booleanisNumber=str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
if(isNumber){
System.out.println("輸入的數字是:"+str);
}else{
System.out.println("輸入的ASCII碼是:"+(int)str.charAt(0));
}
運行結果是:
⑵ java中 怎麼把 ascii碼轉換為 十六進制
使用這個方法可以傳進去的16進制的數字組成的字元串轉化為utf-8格式的字元串
public static String toStringHex1(String s) {
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i < baKeyword.length; i++) {
try {
baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(
i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
}
}
try {
s = new String(baKeyword, "utf-8");// UTF-16le:Not
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}
追問
我要ASCII格式的字元串,有嗎,謝了。
追答
那就修改s = new String(baKeyword, "ASCII")這一行就行了,後面的表示要轉化的編碼格式可以選很多種,以下是你要的代碼
public static String toStringHex1(String s) {
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i < baKeyword.length; i++) {
try {
baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(
i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
}
}
try {
s = new String(baKeyword, "ASCII");
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}