題目描述
寫一個程序,接受一個十六進制的數值字符串,輸出該數值的十進制字符串。
輸入描述:
* 輸入一個十六進制的數值字符串。
輸出描述:
* 輸出該數值的十進制字符串。
輸入例子:
* 0xA
輸出例子:
* 10
算法實現:
方法一:
將十六進制的數值字符串轉換成十進制字符串,用Integer類的
public static int parseInt(String s, int radix)
方法:使用第二個參數指定的基數,將字符串參數解析爲有符號的整數。substring 方法 截取字符串
public String substring(int beginIndex, int endIndex)
方法: 第一個int爲開始的索引,對應String數字中的開始位置;第二個是截止的索引位置,對應String中的結束位置- 取得的字符串長度爲:endIndex - beginIndex;
- 從beginIndex開始取,到endIndex結束,從0開始數,其中不包括endIndex位置的字符
例如:
“hamburger”.substring(4, 8) returns “urge”
“smiles”.substring(1, 5) returns “mile”
取長度大於等於3的字符串a的後三個子字符串,只需a.subString(a.length()-3, a.length());
代碼如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//多個測試用例使用while(sc.hasNext()){}
while(sc.hasNext()){
String s = sc.next().substring(2);
System.out.println(Integer.parseInt(s, 16));
}
}
}
方法二:
JAVA 轉換 總結
類:Integer或Long
方法:toBinaryString(int i)
整數 轉換成 二進制
(參數i 表示要轉換成字符串的整數)類:Integer或Long
方法:toOctalString(int i)
整數 轉換成 八進制
(參數i 表示要轉換成字符串的整數)類:Integer或Long
方法:toHexString(int i)
整數 轉換成 十六進制
(參數i 表示要轉換成字符串的整數)類:Integer或Long
方法:toString(int i,int radix)
任意進制整數 轉換成 其他進制的整數
(參數i:表示要轉換成字符串的整數,radix:表示用於字符串表示形式的基數)int H_int = 0xA57B; //十六進制聲明:前面加0x String h_string= Integer.toString(H_data, 2); System.out.println(h_2);
public class Main { public static void main(String[] args){ int O_data = 0766; //八進制聲明:前面加0 int T_data = 123456; //十進制聲明 int H_data = 0xA57B; //十六進制聲明:前面加0x // 八進制轉換成二進制 System.out.println("八進制" + O_data + "轉換成二進制:"); System.out.println(Integer.toString(O_data, 2)); System.out.println(Integer.toBinaryString(O_data)); // 八進制轉換成十進制 System.out.println("八進制" + O_data + "轉換成十進制:"); System.out.println(Integer.toString(O_data, 10)); System.out.println(Integer.toString(O_data)); // 八進制轉換成十六進制 System.out.println("八進制" + O_data + "轉換成十六進制:"); System.out.println(Integer.toString(O_data, 16)); System.out.println(Integer.toHexString(O_data)); //十進制轉換成二進制 System.out.println("十進制" + T_data + "轉換成二進制:"); System.out.println(Integer.toString(T_data, 2)) ; System.out.println(Integer.toBinaryString(T_data)); } }
類:Integer或Long
方法:parseInt(String s) 或 parseLong(String s)
將字符串 轉換成 整數String s = "0123"; int b = Integer.parseInt(s); System.out.println(Integer.parseInt(s));
類:Integer或Long
方法:parseInt(String s, int radix) 或 parseLong(String s, int radix)
任意進制字符串 轉換成 其他進制的整數
(參數s:表示要轉換成整數的字符串;radix:表示用於整數表示形式的基數)
Java中在聲明數字時默認採用的是十進制,可以在數字前加上特定的符號表示數字採用八進制或者十六進制。數字前面加數字0(零)表示該數字是八進制,例如:012。加0x(零x)表示該數字是十六進制。例如:0x00FF。