NSString簡單細說(十)—— 字符串的分解

版本記錄

版本號 時間
V1.0 2017.05.10

前言

前面我簡單的寫了些NSString的初始化,寫了幾篇哗脖,都不難祈餐,但是可以對新手有一定的小幫助擂啥,對于大神級人物可以略過這幾篇哄陶,NSString本來就沒有難的帆阳,都是細枝末節(jié),忘記了查一下就會了屋吨,沒有技術(shù)難點蜒谤,下面我們繼續(xù)~~~
1. NSString簡單細說(一)—— NSString整體架構(gòu)
2. NSString簡單細說(二)—— NSString的初始化
3. NSString簡單細說(三)—— NSString初始化
4. NSString簡單細說(四)—— 從URL初始化
5. NSString簡單細說(五)—— 向文件或者URL寫入
6. NSString簡單細說(六)—— 字符串的長度
7. NSString簡單細說(七)—— 與C字符串的轉(zhuǎn)化
8. NSString簡單細說(八)—— 識別和比較字符串
9. NSString簡單細說(九)—— 字符串的合并

詳述

字符串的分解

一、- (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator;

看代碼至扰。

    /**
     *1. - (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator;
     *
     *  @param separator:The separator string.
     *
     *  @return :An NSArray object containing substrings from the receiver that have been divided by separator.
     *
     */

    //例1
    NSString *list = @"Karin, Carrie, David";
    NSArray *listItems = [list componentsSeparatedByString:@", "];
    NSLog(@"listItems--%@",listItems);
    
    //例2
    NSString *testStr = @", Norman, Stanley, Fletcher";
    NSArray *testArr = [testStr componentsSeparatedByString:@","];
    NSLog(@"testArr--%@",testArr);
    
    //例3
    NSString *testStr1 = @"Norman, Stanley, Fletcher";
    NSArray *testArr1 = [testStr1 componentsSeparatedByString:@"#"];
    NSLog(@"testArr1--%@",testArr1);

看結(jié)果鳍徽。

2017-05-10 23:27:21.387 NSString你會用嗎?[1425:41922] listItems--(
    Karin,
    Carrie,
    David
)
2017-05-10 23:27:21.387 NSString你會用嗎敢课?[1425:41922] testArr--(
    "",
    " Norman",
    " Stanley",
    " Fletcher"
)
2017-05-10 23:27:21.387 NSString你會用嗎阶祭?[1425:41922] testArr1--(
    "Norman, Stanley, Fletcher"
)

結(jié)論:這里舉了三個例子绷杜,例1中是最常用的情況,直接被逗號隔開的有三部分濒募,組成了一個數(shù)組鞭盟;例2中因為開頭是分割標志逗號,所以返回數(shù)組的第一個元素就是一個空字符串瑰剃,我這里是開頭是這樣齿诉,如果字符串是結(jié)尾是逗號,那么這個數(shù)組最后一個元素就是空字符串晌姚;例3中粤剧,因為要分割的字符串中并沒有分割標志"#",那么返回整個字符串挥唠,即整個數(shù)組就一個元素就是原字符串抵恋。


二、- (NSArray<NSString *> *)componentsSeparatedByCharactersInSet:(NSCharacterSet **)separator;

看代碼猛遍。

    /**
     *2. - (NSArray <NSString *> **)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator;
     *
     *  @param separator:A character set containing the characters to to use to split the receiver. Must not be nil.
     *
     *  @return :An NSArray object containing substrings from the receiver that have been divided by characters in separator.
     *
     */

    NSString *testStr = @"ssAAj23939gApjhoAss";
    NSCharacterSet *character = [NSCharacterSet uppercaseLetterCharacterSet];
    NSArray *resultArr = [testStr componentsSeparatedByCharactersInSet:character];
    NSLog(@"%@----resultArr",resultArr);

看結(jié)果馋记。

2017-05-10 23:39:34.014 NSString你會用嗎?[1581:50076] (
    ss,
    "",
    j23939g,
    pjho,
    ss
)----resultArr

結(jié)論:這個方法就是找到已固定的character分割的字符串組成的數(shù)組懊烤,我這里使用的是大寫字符梯醒,所以就是找到大寫字符分割的數(shù)組。同樣腌紧,數(shù)組中元素出現(xiàn)的次序和在原字符串中的次序是一致的茸习,如果字符串開始或者結(jié)束是以分割的character開始或者結(jié)束的,那么一樣在開頭或者結(jié)束產(chǎn)生空格壁肋,也就是說數(shù)組中第一個元素或者最后一個元素就是空格号胚。


三、- (NSArray<NSString *> *)componentsSeparatedByCharactersInSet:(NSCharacterSet **)separator;

看代碼浸遗。

    /**
     *3. - (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;
     *
     *  @param set:A character set containing the characters to remove from the receiver. set must not be nil.
     *
     *  @return :A new string made by removing from both ends of the receiver characters contained in set. If the receiver is composed entirely of characters from set, the empty string is returned.
     *
     */
    
    //例1
    NSString *testStr1 = @"ssAAj23939gApjhoAss";
    NSCharacterSet *character = [NSCharacterSet lowercaseLetterCharacterSet];
    NSString *resultArr1 = [testStr1 stringByTrimmingCharactersInSet:character];
    NSLog(@"%@----resultArr1",resultArr1);
    
    //例2
    NSString *testStr2 = @"AAAA";
    NSCharacterSet *character1 = [NSCharacterSet uppercaseLetterCharacterSet];
    NSString *resultArr2 = [testStr2 stringByTrimmingCharactersInSet:character1];
    NSLog(@"%@----resultArr2",resultArr2);
    
    //例3
    NSString *testStr3 = @"   AAAA   ";
    NSCharacterSet *character3 = [NSCharacterSet whitespaceCharacterSet];
    NSString *resultArr3 = [testStr3 stringByTrimmingCharactersInSet:character3];
    NSLog(@"%@----resultArr3",resultArr3);

看結(jié)果猫胁。

2017-05-10 23:50:12.998 NSString你會用嗎?[1721:58430] AAj23939gApjhoA----resultArr1
2017-05-10 23:50:12.998 NSString你會用嗎跛锌?[1721:58430] ----resultArr2
2017-05-10 23:50:12.999 NSString你會用嗎弃秆?[1721:58430] AAAA----resultArr3

結(jié)論:這個方法就是去除字符串兩端某種固定形式的字符串。例1中是去除字符串兩端的小寫字母髓帽;例2中是去除字符串兩端的大寫字母菠赚,但是原字符串都是大寫字母,所以整個字符串就是空字符串了郑藏;例3中是去除字符串兩端的空格衡查。


四、- (NSString *)substringFromIndex:(NSUInteger)from;

看代碼必盖。

    /**
     *4. - (NSString *)substringFromIndex:(NSUInteger)from;
     *
     *  @param from:An index. The value must lie within the bounds of the receiver, or be equal to the length of the receiver.
     *
     *  @return A new string containing the characters of the receiver from the one at anIndex to the end. If anIndex is equal to the length of the string, returns an empty string.
     *
     */
    
    //例1
    NSString *testStr2 = @"AAAA";
    NSString *resultArr2 = [testStr2 substringFromIndex:4];
    NSLog(@"%@----resultArr2",resultArr2);

    //例2
    NSString *testStr3 = @"39392egehekhou01GFUGGI";
    NSString *resultArr3 = [testStr3 substringFromIndex:1];
    NSLog(@"%@----resultArr3",resultArr3);
    
    //例3
    NSString *testStr1 = @"ssAAj23939gApjhoAss";
    NSString *resultArr1 = [testStr1 substringFromIndex:30];
    NSLog(@"%@----resultArr1",resultArr1);


看結(jié)果拌牲。

2017-05-11 00:02:49.761 NSString你會用嗎俱饿?[1922:66881] ----resultArr2
2017-05-11 00:02:49.761 NSString你會用嗎?[1922:66881] 9392egehekhou01GFUGGI----resultArr3
2017-05-11 00:02:49.767 NSString你會用嗎塌忽?[1922:66881] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSCFConstantString substringFromIndex:]: Index 30 out of bounds; string length 19'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001075d0d4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010703221e objc_exception_throw + 48
    2   CoreFoundation                      0x000000010763a2b5 +[NSException raise:format:] + 197
    3   Foundation                          0x0000000106b0a88e -[NSString substringFromIndex:] + 126
    4   NSString‰Ω?‰o?á???êó?oü             0x0000000106a5b219 -[JJStringTestVC divideString] + 217
    5   NSString‰Ω?‰o?á???êó?oü             0x0000000106a5b12d -[JJStringTestVC viewDidLoad] + 189
    6   UIKit                               0x0000000107b96a3d -[UIViewController loadViewIfRequired] + 1258
    7   UIKit                               0x0000000107b9d062 -[UIViewController __viewWillAppear:] + 118
    8   UIKit                               0x0000000107bc81d3 -[UINavigationController _startCustomTransition:] + 1290
    9   UIKit                               0x0000000107bd8e48 -[UINavigationController _startDeferredTransitionIfNeeded:] + 697
    10  UIKit                               0x0000000107bd9fdb -[UINavigationController __viewWillLayoutSubviews] + 58
    11  UIKit                               0x0000000107dd0dd7 -[UILayoutContainerView layoutSubviews] + 223
    12  UIKit                               0x0000000107ab9ab8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237
    13  QuartzCore                          0x000000010c353bf8 -[CALayer layoutSublayers] + 146
    14  QuartzCore                          0x000000010c347440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
    15  QuartzCore                          0x000000010c3472be _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    16  QuartzCore                          0x000000010c2d5318 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280
    17  QuartzCore                          0x000000010c3023ff _ZN2CA11Transaction6commitEv + 475
    18  QuartzCore                          0x000000010c302d6f _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113
    19  CoreFoundation                      0x0000000107575267 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    20  CoreFoundation                      0x00000001075751d7 __CFRunLoopDoObservers + 391
    21  CoreFoundation                      0x0000000107559f8e __CFRunLoopRun + 1198
    22  CoreFoundation                      0x0000000107559884 CFRunLoopRunSpecific + 420
    23  GraphicsServices                    0x000000010b44da6f GSEventRunModal + 161
    24  UIKit                               0x00000001079f4c68 UIApplicationMain + 159
    25  NSString‰Ω?‰o?á???êó?oü             0x0000000106a5b04f main + 111
    26  libdyld.dylib                       0x000000010a4bd68d start + 1
    27  ???                                 0x0000000000000001 0x0 + 1
)

結(jié)論:這個字符串就是得到給定索引到字符串結(jié)尾的那部分字符串稍途,如果索引值和字符串長度相等那么得到的就是空字符串,如例1砚婆;例2就是從索引1到末尾的那部分字符串械拍;例3由于字符串的長度小于給定的索引,就是報數(shù)組異常的錯誤装盯。


五坷虑、- (NSString *)substringWithRange:(NSRange)range;

看代碼。

    /**
     *5. - (NSString *)substringWithRange:(NSRange)range;
     *
     *  @param range:A range. The range must not exceed the bounds of the receiver.
     *
     *  @return :A string object containing the characters of the receiver that lie within aRange.
     *
     */
    
    //例1
    NSString *testStr1 = @"AAAA";
    NSRange range1 = NSMakeRange(0, 4);
    NSString *resultArr1 = [testStr1 substringWithRange:range1];
    NSLog(@"%@----resultArr1",resultArr1);
    
    //例2
    NSString *testStr2 = @"39392egehekhou01GFUGGI";
    NSRange range2 = NSMakeRange(0, 5);
    NSString *resultArr2 = [testStr2 substringWithRange:range2];
    NSLog(@"%@----resultArr2",resultArr2);
    
    //例3
    NSString *testStr3 = @"ssAAj23939gApjhoAss";
    NSRange range3 = NSMakeRange(0, 40);
    NSString *resultArr3 = [testStr3 substringWithRange:range3];
    NSLog(@"%@----resultArr3",resultArr3);

看結(jié)果埂奈。

2017-05-11 00:16:55.007 NSString你會用嗎迄损?[2062:73678] AAAA----resultArr1
2017-05-11 00:16:55.007 NSString你會用嗎?[2062:73678] 39392----resultArr2
2017-05-11 00:16:55.015 NSString你會用嗎账磺?[2062:73678] *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFConstantString substringWithRange:]: Range {0, 40} out of bounds; string length 19'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000107a3bd4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010749d21e objc_exception_throw + 48
    2   CoreFoundation                      0x0000000107aa52b5 +[NSException raise:format:] + 197
    3   CoreFoundation                      0x00000001079a102b -[__NSCFString substringWithRange:] + 171
    4   NSString‰Ω?‰o?á???êó?oü             0x0000000106ec61f9 -[JJStringTestVC divideString] + 521
    5   NSString‰Ω?‰o?á???êó?oü             0x0000000106ec5fdd -[JJStringTestVC viewDidLoad] + 189
    6   UIKit                               0x0000000108001a3d -[UIViewController loadViewIfRequired] + 1258
    7   UIKit                               0x0000000108008062 -[UIViewController __viewWillAppear:] + 118
    8   UIKit                               0x00000001080331d3 -[UINavigationController _startCustomTransition:] + 1290
    9   UIKit                               0x0000000108043e48 -[UINavigationController _startDeferredTransitionIfNeeded:] + 697
    10  UIKit                               0x0000000108044fdb -[UINavigationController __viewWillLayoutSubviews] + 58
    11  UIKit                               0x000000010823bdd7 -[UILayoutContainerView layoutSubviews] + 223
    12  UIKit                               0x0000000107f24ab8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237
    13  QuartzCore                          0x000000010c733bf8 -[CALayer layoutSublayers] + 146
    14  QuartzCore                          0x000000010c727440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
    15  QuartzCore                          0x000000010c7272be _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    16  QuartzCore                          0x000000010c6b5318 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280
    17  QuartzCore                          0x000000010c6e23ff _ZN2CA11Transaction6commitEv + 475
    18  QuartzCore                          0x000000010c6e2d6f _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113
    19  CoreFoundation                      0x00000001079e0267 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    20  CoreFoundation                      0x00000001079e01d7 __CFRunLoopDoObservers + 391
    21  CoreFoundation                      0x00000001079c4f8e __CFRunLoopRun + 1198
    22  CoreFoundation                      0x00000001079c4884 CFRunLoopRunSpecific + 420
    23  GraphicsServices                    0x000000010b82da6f GSEventRunModal + 161
    24  UIKit                               0x0000000107e5fc68 UIApplicationMain + 159
    25  NSString‰Ω?‰o?á???êó?oü             0x0000000106ec5eff main + 111
    26  libdyld.dylib                       0x000000010a89d68d start + 1
    27  ???                                 0x0000000000000001 0x0 + 1
)

結(jié)論:這個也很簡單芹敌,不多說了。


六垮抗、- (NSString *)substringToIndex:(NSUInteger)to;

看代碼氏捞。

    /**
     * 6. - (NSString *)substringToIndex:(NSUInteger)to;
     *
     *  @param to:An index. The value must lie within the bounds of the receiver, or be equal to the length of the receiver.
     *
     *  @return :A new string containing the characters of the receiver up to, but not including, the one at anIndex. If anIndex is equal to the length of the string, returns a copy of the receiver.
     *
     */
    
    //例1
    NSString *testStr1 = @"AAAA";
    NSString *resultArr1 = [testStr1 substringToIndex:3];
    NSLog(@"%@----resultArr1",resultArr1);
    
    //例2
    NSString *testStr2 = @"39392egehekhou01GFUGGI";
    NSString *resultArr2 = [testStr2 substringToIndex:200];
    NSLog(@"%@----resultArr2",resultArr2);

看結(jié)果。

2017-05-11 00:26:37.704 NSString你會用嗎冒版?[2228:82867] AAA----resultArr1
2017-05-11 00:26:37.709 NSString你會用嗎液茎?[2228:82867] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSCFConstantString substringToIndex:]: Index 200 out of bounds; string length 22'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010c4c1d4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010bf2321e objc_exception_throw + 48
    2   CoreFoundation                      0x000000010c52b2b5 +[NSException raise:format:] + 197
    3   Foundation                          0x000000010b9fb784 -[NSString substringToIndex:] + 118
    4   NSString‰Ω?‰o?á???êó?oü             0x000000010b94c25b -[JJStringTestVC divideString] + 139
    5   NSString‰Ω?‰o?á???êó?oü             0x000000010b94c1bd -[JJStringTestVC viewDidLoad] + 189
    6   UIKit                               0x000000010ca87a3d -[UIViewController loadViewIfRequired] + 1258
    7   UIKit                               0x000000010ca8e062 -[UIViewController __viewWillAppear:] + 118
    8   UIKit                               0x000000010cab91d3 -[UINavigationController _startCustomTransition:] + 1290
    9   UIKit                               0x000000010cac9e48 -[UINavigationController _startDeferredTransitionIfNeeded:] + 697
    10  UIKit                               0x000000010cacafdb -[UINavigationController __viewWillLayoutSubviews] + 58
    11  UIKit                               0x000000010ccc1dd7 -[UILayoutContainerView layoutSubviews] + 223
    12  UIKit                               0x000000010c9aaab8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237
    13  QuartzCore                          0x00000001111b9bf8 -[CALayer layoutSublayers] + 146
    14  QuartzCore                          0x00000001111ad440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
    15  QuartzCore                          0x00000001111ad2be _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    16  QuartzCore                          0x000000011113b318 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280
    17  QuartzCore                          0x00000001111683ff _ZN2CA11Transaction6commitEv + 475
    18  QuartzCore                          0x0000000111168d6f _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113
    19  CoreFoundation                      0x000000010c466267 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    20  CoreFoundation                      0x000000010c4661d7 __CFRunLoopDoObservers + 391
    21  CoreFoundation                      0x000000010c44af8e __CFRunLoopRun + 1198
    22  CoreFoundation                      0x000000010c44a884 CFRunLoopRunSpecific + 420
    23  GraphicsServices                    0x00000001102b3a6f GSEventRunModal + 161
    24  UIKit                               0x000000010c8e5c68 UIApplicationMain + 159
    25  NSString‰Ω?‰o?á???êó?oü             0x000000010b94c0df main + 111
    26  libdyld.dylib                       0x000000010f32368d start + 1
    27  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

結(jié)論:該方法就是返回到指定索引的字符串,但是不包括索引那一位辞嗡。所以捆等,例1返回"AAA",例2由于越界就crash了续室。

后記

先寫這么多吧栋烤,晚安哈~~~~,明天還要工作挺狰。

繁花似錦
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末明郭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子她渴,更是在濱河造成了極大的恐慌达址,老刑警劉巖蔑祟,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趁耗,死亡現(xiàn)場離奇詭異,居然都是意外死亡疆虚,警方通過查閱死者的電腦和手機苛败,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門满葛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罢屈,你說我怎么就攤上這事嘀韧。” “怎么了缠捌?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵锄贷,是天一觀的道長。 經(jīng)常有香客問我曼月,道長谊却,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任哑芹,我火速辦了婚禮炎辨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘聪姿。我一直安慰自己碴萧,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布末购。 她就那樣靜靜地躺著破喻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盟榴。 梳的紋絲不亂的頭發(fā)上低缩,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音曹货,去河邊找鬼咆繁。 笑死,一個胖子當著我的面吹牛顶籽,可吹牛的內(nèi)容都是我干的玩般。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼礼饱,長吁一口氣:“原來是場噩夢啊……” “哼坏为!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起镊绪,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤匀伏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蝴韭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體够颠,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年榄鉴,在試婚紗的時候發(fā)現(xiàn)自己被綠了履磨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛉抓。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剃诅,靈堂內(nèi)的尸體忽然破棺而出巷送,到底是詐尸還是另有隱情,我是刑警寧澤矛辕,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布笑跛,位于F島的核電站,受9級特大地震影響聊品,放射性物質(zhì)發(fā)生泄漏堡牡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一杨刨、第九天 我趴在偏房一處隱蔽的房頂上張望晤柄。 院中可真熱鬧,春花似錦妖胀、人聲如沸芥颈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爬坑。三九已至,卻和暖如春涂臣,著一層夾襖步出監(jiān)牢的瞬間盾计,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工赁遗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留署辉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓岩四,卻偏偏與公主長得像哭尝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子剖煌,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容