整数を逆にして出力する(例 12345 -> 54321)メソッドを書いています。0が来る場合は0を飛ばします(12300->321)。
制約として、
・1234に50000を足して51234のようにして求めていくこと
・powerOfTenメソッド(整数を10乗の形に直すメソッド:例789→100)を使う
・再帰を使う
・nをString型に直してはいけない
があります。
以下のエラーで、具体的にどう考えて直すのか教えていただけないでしょうか。初心者で見苦しいコードになっていますが、よろしくお願いいたします。
java
1public int reverseDigits(int n) { 2 3int lastNum = n.length(); //[ERROR] At box line: 003, int cannot be dereferenced. 4 5for (int i = 0; i < lastNum; i++) { 6 7 int lowestNum = n%10; 8 if (lowestNum == 0) continue; //最後の文字が0のときは考えない 9 10 int numToAdd = lowestNum * powerOfTen(n); //50000を計算する 11 12 n = n.substring(0, lastNum -2); //1234を抜き出す 13//[ERROR] At box line: 011, int cannot be dereferenced. 14 15 int result = numToAdd + n; 16 return result[0]; //[ERROR] At box line: 013, array required, but int found. 17//先頭の文字(上記の5)を順に出力し、残りの文字でメソッドを繰り返す 18 reverseDigits(result.substring(1,lastNum -1)); //[ERROR] At box line: 014, int cannot be dereferenced. 19 20} 21}
なんかの課題でしょうか?そういうのはご自分でやらないと意味ないですが。で、n ってなんでしょう
初心者という記述はふようです。マーク一つでわかりますので