前提・実現したいこと
参考ReverseInteger
数字を3つ入力し、その1つ目と3つ目を入れ替えて
結果を返すというプログラムを書いています。
問題では、例では入力は3つの数になっていますが、テストケースでは
もしかしたら4つや5つなど入力数が増減するのかもしれないという懸念はあります。
123 //input 321 //output
現在のoutputに加えて、以下の二つを実行したいと考えています。
//入れ替えて0が先頭に来た場合は空白にする 120 21 //負の値が入力された場合は符号はそのままで入れ替える -321 -123
発生している問題・エラーメッセージ
「入れ替えて0が先頭に来た場合は空白にする」という処理では以下のコードでは
実行されないことと、
負の値が入力された場合は符号はそのままで入れ替える場合には配列を4つにして
if(nums[0] == "-"){ tmp = nums[1]; nums[1] = nums[3]; nums[3] = tmp; }
と分岐させるのが良いのでしょうか。
該当のソースコード
Java
1import java.util.Scanner; 2 3public class ReverseInt { 4 public static void main(String[] args) { 5 Scanner scan = new Scanner(System.in); 6 String num = scan.next(); 7 String[] nums = new String[3]; 8 //insert into arrays 9 for(int i = 0; i<3; i++){ 10 nums[i]=String.valueOf(num.charAt(i)); 11 } 12 13 //reverse 14 String tmp; 15 tmp = nums[0]; 16 nums[0] = nums[2]; 17 nums[2] = tmp; 18 if(nums[0] == "0"){ 19 nums[0] = " "; 20 } 21 22 for(int i = 0; i<nums.length; i ++){ 23 24 System.out.print(nums[i]); 25 } 26 27 } 28 29} 30
補足情報(FW/ツールのバージョンなど)
Eclipse Java EE IDE for Web Developers.
Version: Neon.3 Release (4.6.3)
回答3件
あなたの回答
tips
プレビュー