せでぃのブログ

ブログ初心者おいどんのどうでもいい愚痴やどうでもいい愚痴やどうでもいいマメ知識などを披露するチラシの裏です。

テキストであんまりやらなかったことー文字列操作ー

文字列の操作を例のテキストでは全然やってなかった。面倒くさいので、コードそのまんま乗せてやんよ。Objective-Cのばやい、文字列の結合が意外と面倒くさい印象。

ここら辺も個人的に大事というかよく使うと思ってるんだけど、実はカレンダーとか日付処理の下準備のつもり。日付は文字列で出る癖に計算が必要だったりして、面倒だった覚えがある…VBSとかVBAでな!

メモリリリースしないのかよ! とかプロの方に怒られそうですが、autoreleasepool入れてると、逆に中の人に怒られるんだな。

 

 

//

//  main.m

//  sample103

//

//  Created by macbook on 2013/05/12.

//  Copyright (c) 2013年 macbook. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv)

{

 

    @autoreleasepool {

        

        //文字列の連結

        NSString *strSample1 = [[NSString alloc] init];

        NSString *strSample2 = [[NSString alloc] init];

        strSample1 = @"うんこ10回";

        NSLog(@"%@", strSample1);

        strSample2 = @"漏らした";

        NSLog(@"%@", strSample2);

        //ObjectCでは簡単に文字列の連結ができない!

        //NSLog(@"%@", strSample1 + strSample2); //行頭の//を外すとエラーになる

        

        // strSample1とstrSample2を連結して、新たにpStr3のNSStringを生成する

        NSString *strSample3 = [strSample1 stringByAppendingString:strSample2];

        NSLog(@"連結:%@", strSample3);

        

        //文字数をカウント

        NSLog(@"文字数:%ld", [strSample1 length]);

        

        //文字列が同じか比較

        NSString *strSample4 = [[NSString alloc] init];

        strSample4 = @"うんこ11回";

        if([strSample1 isEqualToString:strSample4]){

            NSLog(@"比較:同じ");

        }

        else {

            NSLog(@"比較:違う");

        }

        

        //置換

        NSString *strSample5 = [strSample1 stringByReplacingOccurrencesOfString: @"うんこ" withString: @"アレを"];

        NSLog(@"置換:%@", strSample5);

        

    }

    return 0;

}

 

-------------実行結果-------------

2013-05-12 16:30:04.314 sample103[780:303] うんこ10

2013-05-12 16:30:04.316 sample103[780:303] 漏らした

2013-05-12 16:30:04.317 sample103[780:303] 連結:うんこ10回漏らした

2013-05-12 16:30:04.317 sample103[780:303] 文字数:6

2013-05-12 16:30:04.318 sample103[780:303] 比較:違う

2013-05-12 16:30:04.318 sample103[780:303] 置換:アレを10

----------------------------

 

 

//

//  main.m

//  sample102

//

//  Created by macbook on 2013/05/12.

//  Copyright (c) 2013年 macbook. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv)

{

 

    @autoreleasepool {

        

        //数字と文字列の変換

        //時間をイメージして、数字を文字列に変換

        NSString *strTwentyfour;

        strTwentyfour = [NSString stringWithFormat:@"%d",24];

        //この時点ではまだ計算できる

        //strTwentyfour = [NSString stringWithFormat:@"%d",24 + 10];

        NSLog(@"文字列化:%@", strTwentyfour);

 

        //フォーマット指定子を変えてみる その1

        NSLog(@"指定子変更1:%d", strTwentyfour); //意図しない数字(たぶん文字コード)が返ってくる

        //計算してみる その1

        //NSLog(@"計算1:%@", strTwentyfour - 10); //NSLog行頭の//を取るとエラーで実行できないはず

        

        //今度は文字列を数字に変換

        int i;

        i = [strTwentyfour intValue];

        NSLog(@"数字化:%d", i);

        //フォーマット指定子を変えてみる その2

        //NSLog(@"指定子変更2:%@", i); //NSLog行頭の//を取るとビルドに失敗するはず

        //計算してみる その2

        NSLog(@"計算2:%d", i - 10);

        

    }

    return 0;

}

 

-------------実行結果-------------

2013-05-12 16:28:15.942 sample102[763:303] 文字列化:24

2013-05-12 16:28:15.944 sample102[763:303] 指定子変更12052892272

2013-05-12 16:28:15.945 sample102[763:303] 数字化:24

2013-05-12 16:28:15.945 sample102[763:303] 計算214

----------------------------

 

 

参考リンク)

http://blog.justoneplanet.info/2011/01/30/objective-cの文字列/

http://ft-lab.ne.jp/cgi-bin/wiki.cgi?page=%CA%B8%BB%FA%CE%F3%A4%CE%B4%C9%CD%FD(NSString)_mac

http://ksaito11.blogspot.jp/2010/05/blog-post.html