java,二進位制轉換為十進位制,valueof和parseInt的區別
阿新 • • 發佈:2019-01-05
import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { // System.out.println(convertToBinary(1828759744)); // //String[] A={"1","1"}; ///3 這是string陣列 String A = "11000000"; // System.out.println(A.charAt(3)); ////4 返回A[2] // System.out.println(A.indexOf('5'));//3 A[3]=5,返回5的下標 // System.out.println(A.indexOf(7)); ///// 無數字7 返回-1 Test test = new Test(); System.out.println(test.convertToDecimal(A)); // System.out.println(Integer.valueOf("11000000",2));////192 // System.out.print((int)Math.pow(2, 3));////8 } private static String convertToBinary(int m) { List<Integer> list = new ArrayList<Integer>(); StringBuffer sb = new StringBuffer(); while (m / 2 != 0) { list.add(m % 2); m = m / 2; } list.add(m % 2); for (int i = list.size() - 1; i >= 0; i--) { sb.append(list.get(i)); } return sb.toString(); }// //// // char charAt(int index) // 返回指定索引處的 char 值。 // static int parseInt(String s) // 將字串引數作為有符號的十進位制整數進行解析。 //static int parseInt(String s, int radix) // 使用第二個引數指定的基數,將字串引數解析為有符號的整數。 // static Integer valueOf(int i) // 返回一個表示指定的 int 值的 Integer 例項。 // static Integer valueOf(String s) // 返回儲存指定的 String 的值的 Integer 物件。 private int convertToDecimal(String B) { double sum = 0; for (int i = 0; i < B.length(); i++) { sum=sum+Integer.valueOf(B.charAt(i)+"")*Math.pow(2, B.length()-i-1);///valueOf(String s) 1 1 System.out.println(Integer.valueOf(B.charAt(i)+""));////valueOf(String s) // 192 // sum=sum+Integer.valueOf(B.charAt(i))*Math.pow(2, B.length()-i-1); // valueOf(int i) 49 49 // System.out.println(Integer.valueOf(B.charAt(i))); /// valueOf(int i) //12432 // sum = sum + Integer.parseInt(B.charAt(i) + "")* Math.pow(2, B.length() - i - 1);///parseInt(String s) 1 1 // System.out.println(Integer.parseInt(B.charAt(i) + ""));/// 192 // sum = sum + Integer.parseInt(B.charAt(i))* Math.pow(2, B.length() - i - 1);//Integer.parseInt(B.charAt(i))錯誤 } return (int) sum; } }
1
1
0
0
0
0
0
0
192
-----------------------------------------------------------------------------------
private int convertToDecimal(String B) { double sum = 0; for (int i = 0; i < B.length(); i++) { // sum=sum+Integer.valueOf(B.charAt(i)+"")*Math.pow(2, B.length()-i-1);///valueOf(String s) 1 1 // System.out.println(Integer.valueOf(B.charAt(i)+""));////valueOf(String s) // 192 sum=sum+Integer.valueOf(B.charAt(i))*Math.pow(2, B.length()-i-1); // valueOf(int i) 49 49 System.out.println(Integer.valueOf(B.charAt(i))); /// valueOf(int i) //12432 // sum = sum + Integer.parseInt(B.charAt(i) + "")* Math.pow(2, B.length() - i - 1);///parseInt(String s) 1 1 // System.out.println(Integer.parseInt(B.charAt(i) + ""));/// 192 // sum = sum + Integer.parseInt(B.charAt(i))* Math.pow(2, B.length() - i - 1);//Integer.parseInt(B.charAt(i))錯誤 } return (int) sum; }
49
49
48
48
48
48
48
48
12432
------------------------------------------------------------------------------
private int convertToDecimal(String B) { double sum = 0; for (int i = 0; i < B.length(); i++) { // sum=sum+Integer.valueOf(B.charAt(i)+"")*Math.pow(2, B.length()-i-1);///valueOf(String s) 1 1 // System.out.println(Integer.valueOf(B.charAt(i)+""));////valueOf(String s) // 192 // sum=sum+Integer.valueOf(B.charAt(i))*Math.pow(2, B.length()-i-1); // valueOf(int i) 49 49 // System.out.println(Integer.valueOf(B.charAt(i))); /// valueOf(int i) //12432 sum = sum + Integer.parseInt(B.charAt(i) + "")* Math.pow(2, B.length() - i - 1);///parseInt(String s) 1 1 System.out.println(Integer.parseInt(B.charAt(i) + ""));/// 192 // sum = sum + Integer.parseInt(B.charAt(i))* Math.pow(2, B.length() - i - 1);//Integer.parseInt(B.charAt(i))錯誤 } return (int) sum; }
1
1
0
0
0
0
0
0
192
可見 valueOf(....+"")構成valueOf(string),返回字串的該位字元
valueOf(int)返回該位字元的ASCII
parseInt(....+"")構成parseInt(String)以十進位制返回該位字元
</pre><p style="color:rgb(54,46,43); font-family:Arial; font-size:13.63636302947998px; line-height:25.99431800842285px"><span style="color:rgb(0,0,0)"></span></p><pre code_snippet_id="1624414" snippet_file_name="blog_20160326_8_6994607" name="code" class="java">public class Test {
public static void main(String[] args) {
String str = "111";
int one = Integer.parseInt(str);
int two = Integer.valueOf(str); ////處理這個字串時沒有區別
int one_1 = Integer.parseInt(str+""); ///// 本身已經是sring型別,再加""也是string,且null的ascii為0,不起作用
int two_1 = Integer.valueOf(str+"");
// static Integer valueOf(int i)
// 返回一個表示指定的 int 值的 Integer 例項。
// static Integer valueOf(String s)
// 返回儲存指定的 String 的值的 Integer 物件。
for (int i = 0; i < str.length(); i++) {
System.out.println(Integer.valueOf(str.charAt(i) + ""));
System.out.println(Integer.valueOf(str.charAt(i)));
}
int three = Integer.valueOf(str.charAt(0) + "");// /1
int four = Integer.valueOf(str.charAt(0));// /49
System.out.println(one);
System.out.println(two);
System.out.println(one_1);
System.out.println(two_1);
System.out.println(three);
System.out.println(four);
}
}
//1
//49
//1
//49
//1
//49
//111
//111
//111
//111
//1
//49
int p = Integer.valueOf(2);
System.out.println(p); ///2
int q = Integer.valueOf(2+"");
System.out.println(q); ///2
int k = Integer.valueOf('2'); ///char -> int ,向上轉型,按照Ascii輸出,
System.out.println(k); ////50
int r = Integer.valueOf('2'+"");
System.out.println(r); ////2
int m = Integer.valueOf('2'-'0');
System.out.println(m);///2
int n = Integer.valueOf("1"); ////String原樣輸出
System.out.print(n);////1
設有下面兩個賦值語句:
a = Integer.parseInt(“123”);
b = Integer.valueOf(“123”).intValue();
下述說法正確的是( d )。
A、a是整數型別變數,b是整數類物件。
B、a是整數類物件,b是整數型別變數。
C、a和b都是整數類物件並且值相等。
D、a和b都是整數型別變數並且值相等。
詳細解析:
parseInt(String s )方法是類Integer的靜態方法,它的作用就是將形參 s 轉化為整數,比如:
Interger.parseInt("1")=1;
Integer.parseInt("20")=20;
Integer.parseInt("324")=324;
當然,s 表示的整數必須合法,不然是會拋異常的。
int |
以 int 型別返回該 Integer 的值。 |