Xcode 、Android開発で4桁の 数値 で、千、百、十、一の位で数値を取得する方法です。
例 1234 →千の位:1、百の位:2、十の位:3、一の位:4
※4桁以外でもこの考えを応用すると使用可能です。
以下2方法があります。
1.計算により取得
2.数値型から文字型に変換して、再度数値型に変換
1.計算により取得
計算により各桁を取得していきます。
X_num:4桁の数値の変数
千の位:X_num_a、百の位:X_num_b、十の位:X_num_c、一の位:X_num_d
Objective-cの場合
1 | NSInteger X_num_a = X_num / 1000; |
2 | NSInteger X_num_b = (X_num - (X_num_a * 1000)) / 100; |
3 | NSInteger X_num_c = (X_num - (X_num_a * 1000) - (X_num_b * 100)) / 10; |
4 | NSInteger X_num_d = X_num - (X_num_a * 1000) - (X_num_b * 100) - (X_num_c * 10); |
・十から千の位の計算は、NSInteger型のため計算結果で小数点以下が発生しても対象外となります。
・X_num_dの計算で、X_num_cの計算式と同様の式で余り(/ → %)を求める計算もあります。
Androidの場合
1 | int X_num_a = X_num / 1000 ; |
2 | int X_num_b = (X_num - (X_num_a * 1000 )) / 100 ; |
3 | int X_num_c = (X_num - (X_num_a * 1000 ) - (X_num_b * 100 )) / 10 ; |
4 | int X_num_d = X_num - (X_num_a * 1000 ) - (X_num_b * 100 ) - (X_num_c * 10 ); |
2.数値型から文字型に変換して、再度数値型に変換
数字を文字に変換して、文字列操作を行い各桁の値を取得します。
1000以上(千の位が1以上)でない場合、桁数がずれる可能性があります。
Objective-cの場合
4 | NSString *X_num_str = [ NSString stringWithFormat: @"%ld" ,X_num]; |
7 | NSString *X_num_a_str = [X_num_str substringWithRange: NSMakeRange (0,1)]; |
8 | NSString *X_num_b_str = [X_num_str substringWithRange: NSMakeRange (1,1)]; |
9 | NSString *X_num_c_str = [X_num_str substringWithRange: NSMakeRange (2,1)]; |
10 | NSString *X_num_d_str = [X_num_str substringWithRange: NSMakeRange (3,1)]; |
13 | NSInteger X_num_a = [X_num_a_str intValue]; |
14 | NSInteger X_num_b = [X_num_b_str intValue]; |
15 | NSInteger X_num_c = [X_num_c_str intValue]; |
16 | NSInteger X_num_d = [X_num_d_str intValue]; |
19 | NSInteger X_num_a = [[ NSString stringWithFormat: @"%ld" ,X_num] |
20 | substringWithRange: NSMakeRange (0,1)] intValue]; |
21 | NSInteger X_num_b = [[ NSString stringWithFormat: @"%ld" ,X_num] |
22 | substringWithRange: NSMakeRange (1,1)] intValue]; |
23 | NSInteger X_num_c = [[ NSString stringWithFormat: @"%ld" ,X_num] |
24 | substringWithRange: NSMakeRange (2,1)] intValue]; |
25 | NSInteger X_num_d = [[ NSString stringWithFormat: @"%ld" ,X_num] |
26 | substringWithRange: NSMakeRange (3,1)] intValue]; |
Androidの場合
2 | String X_num_str = String.valueOf(X_num); |
5 | String X_num_a_str = X_num_str.substring( 0 , 1 ); |
6 | String X_num_b_str = X_num_str.substring( 1 , 1 ); |
7 | String X_num_c_str = X_num_str.substring( 2 , 1 ); |
8 | String X_num_d_str = X_num_str.substring( 3 , 1 ); |
11 | int X_num_a = Integer.parseInt(X_num_a_str); |
12 | int X_num_b = Integer.parseInt(X_num_b_str); |
13 | int X_num_c = Integer.parseInt(X_num_c_str); |
14 | int X_num_d = Integer.parseInt(X_num_d_str); |