回答編集履歴

2

parseIntのクラスを修正

2019/08/08 03:48

投稿

uskey512
uskey512

スコア144

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  2進数の文字列を入力して、10進数の値として解釈したいだけならば
2
- 読み込んだ文字列をString#parseIntする際に基数を指定して
2
+ 読み込んだ文字列をInteger#parseIntする際に基数を指定して
3
3
  ```java
4
4
  String s = sc.next();
5
- int num = String.parseInt(s, 2);
5
+ int num = Integer.parseInt(s, 2);
6
6
  ```
7
7
  とするだけでよさそう。
8
8
 
@@ -10,7 +10,7 @@
10
10
  [https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-)
11
11
 
12
12
  ## 追記
13
- String#parseIntを利用しない場合
13
+ Integer#parseIntを利用しない場合
14
14
 
15
15
  ```java
16
16
  import java.util.*;

1

String.parseIntを使わない場合のコードを記載

2019/08/08 03:48

投稿

uskey512
uskey512

スコア144

answer CHANGED
@@ -7,4 +7,35 @@
7
7
  とするだけでよさそう。
8
8
 
9
9
  リファレンス的にはこのあたり
10
- [https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-)
10
+ [https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-)
11
+
12
+ ## 追記
13
+ String#parseIntを利用しない場合
14
+
15
+ ```java
16
+ import java.util.*;
17
+
18
+ public class Main {
19
+
20
+ static int twoTenBase(String s) {
21
+ int sum = 0;
22
+
23
+ // 文字列(数字)の最上位桁から読み取り、基数を掛けていく
24
+ for (int i = 0; i < s.length(); ++i) {
25
+ sum *= 2; // 入力が10進数のときはここを10にする(今回は2)
26
+ sum += s.charAt(i) - '0';
27
+ }
28
+
29
+ return sum;
30
+ }
31
+
32
+ public static void main(String[] args){
33
+ Scanner sc = new Scanner(System.in);
34
+
35
+ String s = sc.next();
36
+ int result = twoTenBase(s);
37
+
38
+ System.out.println(result);
39
+ }
40
+ }
41
+ ```