JUnitについての書籍が遂に発売します!
Java開発時のユニットテストを加速する「JUnit速効レシピ」
Java開発時のユニットテストを加速する「JUnit速効レシピ」
iPhone/iPad/iPodアプリ開発者がAndroidアプリも開発する場合。
Androidアプリ開発者がiPhone/iPad/iPodアプリも開発する場合。
大元のアプリがあって、相互にコンバートする場合。
その様なシーンで使える、JavaとObjective-Cで、同じ事をしようとした時に、
それぞれの言語ではどの様に実装するのか。そういった比較表を作成しました。
コンバート時や、同時開発時に参考にして下さい。
どんどん充実させる為に、随時追記していきます。
事前準備と大前提
iPhoneアプリ開発で使うプログラミング言語
Objective-CAndroid開発で使うプログラミング言語
JavaiPhoneアプリ開発で使う開発環境
XcodeAndroid開発で使う開発環境
EclipseiPhoneアプリ開発で使う基本的なSDK
UIKitSDKAndroid開発で使う基本的なSDK
AndroidSDKJavaとObjective-Cで使用される主な型名の違い等
文字
char(1バイト)
char(javaのcharは2バイト)
真偽値
BOOL(YES,NO)
boolean(true,false)
整数オブジェクト
NSInteger
Integer
文字列オブジェクト
NSString*
String
可変文字列
NSMutableString*
StringBuilder
汎用オブジェクト
id
Object
メソッドセレクタ
SEL
Method
配列
NSArray*
ArrayList
可変配列
NSMutableArray*
ArrayList
連想配列
NSDictionary*
HashMap
可変連想配列
NSMutableDictionary*
HashMap
バイト配列
NSMutableData*
ArrayListbyte>
バイト
NSData*
Byte
クラス
Class
Class
viewコントローラ
UIViewController*
Activity
定数の宣言
#define
public static final
コメントアウト
// 一行コメントアウト /* 複数行コメントアウト */
// 一行コメントアウト /* 複数行コメントアウト */
型変換関係
数値を文字列へ変換
[num stringValue];
String.valueOf( num );
文字列からint型へ変換
[str intValue];
Integer.parseInt( str );
文字列からfloat型へ変換
[str floatValue];
Float.parseFloat( str );
文字列からdouble型へ変換
[str doubleValue];
Double.parseDouble( str );
文字列からboolean型へ変換
[str boolValue];
Boolean.valueOf( str );
配列,連想配列関係
配列
NSArray*
ArrayList
連想配列
NSDictionary*
HashMap
配列から値を取得する
[arr objectAtIndex:0];
arr.get( 0 );
配列から値を削除する
[arr removeObjectAtIndex:0];
arr.remove( 0 );
配列の末尾を削除する
[arr removeLastObject];
arr.remove( array.size() - 1 );
配列から全ての値を削除する
[arr removeAllObjects];
arr.clear();
配列の末尾へ値を追加する
[arr addObject:@"AAA"];
arr.add("AAA");
連想配列へ値を追加する
[hash setObject:value forKey:key];
hash.put( key, value );
連想配列から、添え字を元に値を取得する
[hash objectForKey:key];
hash.get(key);
配列の要素数を取得する
[arr count];
arr.size();
最初に一致する要素のインデックス番号を取得する
[arr indexOfObject:key];
arr.indexOf( key );
配列の中身を置き換える
[arr replaceObjectAtIndex:index_no withObject:@"newdata"];
arr.set( index_no, "newdata" );
配列の中身を取得しながらを順に処理する
for( NSString* str in arr ){}
for( String str : arr ){}
文字列関係
文字数の取得
[str length];
str.length();
指定文字数以降を取得
[str substringFromIndex:3];
str.substring( 3 );
指定文字数までを取得
[str substringToIndex:3];
str.substring( 0, 3 );
指定文字数から指定文字数分を取得
[str substringWithRange:NSMakeRange( 2, 5 )];
str.substring( 2, 2+5 ); // 文字数分ではなくて、第一引数から第二引数の間を返却
指定された位置にある文字を取得
[str substringWithRange:NSMakeRange( 3, 1 )];
str.charAt( 3 );
文字列を比較して等しいかどうか調べる
if( [str isEqualToString:@"ABC"] );
if( str.equals( "ABC" ) );
文字列が等しいか比較する
if( [str compare:@"ABC"] );
if( str.equals( "ABC" ) );
前後の空白を除去する(トリム処理)
[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
str.trim();
指定文字が出現する場所取得
[str rangeOfString:@"abc"];
str.indexOf( 'abc' );
指定文字が出現する場所取得(後ろから)
[str rangeOfString:@"abc" options:NSBackwardsSearch];
str.lastIndexOf( 'abc' );
指定文字列を小文字へ変換する
[str lowercaseString];
str.toLowerCase();
指定文字列を大文字へ変換する
[str uppercaseString];
str.toUpperCase();
文字列の末尾に文字列を追加する
[str appendString:@"string"];
str.concat( "string" );
文字列を置換する
[str stringByReplacingOccurrencesOfString: @"abc" withString: @"def"];
str.replace( "abc", "def");
正規表現により最初に見つけた指定文字列を置換する
stringByReplacingMatchesInString
str.replaceFirst( "abc", "def");
正規表現により見つけた全ての文字列を置換する
stringByReplacingMatchesInString
str.replaceAll( "abc", "def");
指定文字列で始まっている?
[str hasPrefix:@"string"];
str.startsWith( "string" );
指定文字列で終わっている?
[str hasSuffix:@"string"];
str.endsWith( "string" );
文字列の途中の文字列を挿入する
NSMutableString* ms = [NSMutableString stringWithString:@"abcdefghijk"]; [ms insertString:@"★" atIndex:3];
StringBuilder sb = new StringBuilder( "abcdefghijk" ); String string = new String( sb.insert( 3, "★" ).toString() );
時刻関係
現在時刻を取得する
NSDate* date = [NSDate date];
Date date = new Date();
時刻用のフォーマットを定義する
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
SimpleDateFormat formatter = new SimpleDateFormat( "yyyy/MM/dd hh:mm:ss SSS" );
時刻情報に対して表示するフォーマットを適用して文字列へ変換する
NSString* date_string = [formatter stringFromDate:date];
String date_string = formatter.format(date);
現在時刻をフォーマットして文字列へ
NSDate* date = [NSDate date]; NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"]; NSString* date_string = [formatter stringFromDate:date];
Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat( "yyyy/MM/dd hh:mm:ss" ); String date_string = formatter.format(date);
その他
クラスを取得する
[myClass class]
myClass.class
JUnitについての書籍が遂に発売します!
Java開発時のユニットテストを加速する「JUnit速効レシピ」
Java開発時のユニットテストを加速する「JUnit速効レシピ」