NSString簡(jiǎn)單細(xì)說(shuō)(十一)—— 字符串的查找

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.05.18

前言

前面我簡(jiǎn)單的寫(xiě)了些NSString的初始化,寫(xiě)了幾篇莲兢,都不難汹来,但是可以對(duì)新手有一定的小幫助,對(duì)于大神級(jí)人物可以略過(guò)這幾篇改艇,NSString本來(lái)就沒(méi)有難的收班,都是細(xì)枝末節(jié),忘記了查一下就會(huì)了谒兄,沒(méi)有技術(shù)難點(diǎn)摔桦,下面我們繼續(xù)~~~
1. NSString簡(jiǎn)單細(xì)說(shuō)(一)—— NSString整體架構(gòu)
2. NSString簡(jiǎn)單細(xì)說(shuō)(二)—— NSString的初始化
3. NSString簡(jiǎn)單細(xì)說(shuō)(三)—— NSString初始化
4. NSString簡(jiǎn)單細(xì)說(shuō)(四)—— 從URL初始化
5. NSString簡(jiǎn)單細(xì)說(shuō)(五)—— 向文件或者URL寫(xiě)入
6. NSString簡(jiǎn)單細(xì)說(shuō)(六)—— 字符串的長(zhǎng)度
7. NSString簡(jiǎn)單細(xì)說(shuō)(七)—— 與C字符串的轉(zhuǎn)化
8. NSString簡(jiǎn)單細(xì)說(shuō)(八)—— 識(shí)別和比較字符串
9. NSString簡(jiǎn)單細(xì)說(shuō)(九)—— 字符串的合并
10. NSString簡(jiǎn)單細(xì)說(shuō)(十)—— 字符串的分解

字符串的查找

一、- (BOOL)containsString:(NSString *)str;

看代碼

    /**
     * 1. - (BOOL)containsString:(NSString *)str;;
     *
     *  @param str:The string to search for. This value must not be nil.
     *
     *  @return :YES if the receiver contains str, otherwise NO.
     *
     */
    
    NSString *testStr = @"AAAasdWIU";
    BOOL isContain = [testStr containsString:@"asd"];
    NSLog(@"%d--isContain",isContain);
    BOOL isContain1 = [testStr containsString:@"asD"];
    NSLog(@"%d--isContain1",isContain1);

看結(jié)果

2017-05-18 22:52:39.361 NSString你會(huì)用嗎舵变?[984:24027] 1--isContain
2017-05-18 22:52:39.361 NSString你會(huì)用嗎酣溃?[984:24027] 0--isContain1

結(jié)論:從上面可以看到:

  • 這個(gè)包含的判斷是有大小寫(xiě)之分的瘦穆,也就是casesensitive的纪隙。
  • 這個(gè)方法其實(shí)和rangeOfString:options: 方法中不傳option的時(shí)候是等價(jià)的。
  • 當(dāng)用于和用戶端呈現(xiàn)的時(shí)候需要使用localizedStandardContainsString: 或者localizedCaseInsensitiveContainsString: 方法扛或。

二绵咱、- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str;

先看代碼

    /**
     * 2. - (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str;
     *
     *  @param str:The string to search for. This value must not be nil.
     *
     *  @return :YES if the receiver contains str, otherwise NO.
     *
     */
    
    NSString *testStr = @"AAAasdWIU";
    BOOL isContain = [testStr localizedCaseInsensitiveContainsString:@"asd"];
    NSLog(@"%d--isContain",isContain);
    BOOL isContain1 = [testStr localizedCaseInsensitiveContainsString:@"asD"];
    NSLog(@"%d--isContain",isContain1);

看結(jié)果

2017-05-18 23:04:13.618 NSString你會(huì)用嗎?[1138:32102] 1--isContain
2017-05-18 23:04:13.618 NSString你會(huì)用嗎熙兔?[1138:32102] 1--isContain

結(jié)論:由上可知:

  • 這個(gè)是不區(qū)分大小寫(xiě)的悲伶,也就是說(shuō)是CaseInsensitive的艾恼。

三、- (BOOL)localizedStandardContainsString:(NSString *)str;

看代碼

    /**
     * 3. - (BOOL)localizedStandardContainsString:(NSString *)str;
     *
     *  @param str:The string to search for. This value must not be nil.
     *
     *  @return :YES if the receiver contains str, otherwise NO.
     *
     */

    NSString *testStr = @"AAAasdWIU";
    BOOL isContain = [testStr localizedStandardContainsString:@"asd"];
    NSLog(@"%d--isContain",isContain);
    BOOL isContain1 = [testStr localizedStandardContainsString:@"asD"];
    NSLog(@"%d--isContain",isContain1);

看結(jié)果

2017-05-18 23:14:39.764 NSString你會(huì)用嗎麸锉?[1285:42492] 1--isContain
2017-05-18 23:14:39.764 NSString你會(huì)用嗎钠绍?[1285:42492] 1--isContain

結(jié)論:這個(gè)方法也是不缺分大小寫(xiě)字母的。


四花沉、- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet;

看代碼


    /**
     * 4. - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet;
     *
     *  @param searchSet:A character set. This value must not be nil.
     *
     *  @return :The range in the receiver of the first character found from aSet. Returns a range of {NSNotFound, 0} if none of the characters in aSet are found.    
     *
     */
    
    NSString *testStr = @"AAAasdWIU";
    NSCharacterSet *characterSet = [NSCharacterSet lowercaseLetterCharacterSet];
    NSRange range = [testStr rangeOfCharacterFromSet:characterSet];
    NSLog(@"range--location=%ld--lengh=%ld",range.location,range.length);
    
    NSCharacterSet *characterSet1 = [NSCharacterSet uppercaseLetterCharacterSet];
    NSRange range1 = [testStr rangeOfCharacterFromSet:characterSet1];
    NSLog(@"range1--location=%ld--lengh=%ld",range1.location,range1.length);


看結(jié)果

2017-05-18 23:26:24.941 NSString你會(huì)用嗎柳爽?[1457:52949] range--location=3--lengh=1
2017-05-18 23:26:24.941 NSString你會(huì)用嗎?[1457:52949] range1--location=0--lengh=1

結(jié)論:由上可知:

  • 這個(gè)方法的作用就是找到character所對(duì)應(yīng)的range碱屁。
  • searchSet不能為空磷脯,如為空就會(huì)拋出異常NSInvalidArgumentException。
  • 如果找不到就會(huì)返回結(jié)果{NSNotFound, 0}娩脾。
  • 這個(gè)方法和 rangeOfCharacterFromSet:options:中options為nil時(shí)是一樣的赵誓。

五、- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet options:(NSStringCompareOptions)mask;

看代碼

    /**
     * 5. - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet options:(NSStringCompareOptions)mask;
     *
     *  @param searchSet:A character set. This value must not be nil.
     *  @param mask:A character set. This value must not be nil.
     *
     *  @return :A mask specifying search options. The following options may be specified by combining them with the C bitwise OR operator: NSAnchoredSearch, NSBackwardsSearch.
     *
     */
    
    NSString *testStr = @"AAasdWIU";
    NSCharacterSet *characterSet = [NSCharacterSet lowercaseLetterCharacterSet];
    NSRange range = [testStr rangeOfCharacterFromSet:characterSet options:NSBackwardsSearch];
    NSLog(@"range--location=%ld--lengh=%ld",range.location,range.length);
    
    NSCharacterSet *characterSet1 = [NSCharacterSet uppercaseLetterCharacterSet];
    NSRange range1 = [testStr rangeOfCharacterFromSet:characterSet1 options:NSLiteralSearch];
    NSLog(@"range1--location=%ld--lengh=%ld",range1.location,range1.length);

看結(jié)果

2017-05-18 23:50:38.672 NSString你會(huì)用嗎柿赊?[1696:69877] range--location=4--lengh=1
2017-05-18 23:50:38.672 NSString你會(huì)用嗎俩功?[1696:69877] range1--location=0--lengh=1


結(jié)論:由上可知

  • searchSet為空則會(huì)拋出異常。
  • 這個(gè)方法可以看做方法rangeOfCharacterFromSet:options:range:碰声,range為整個(gè)字符串的特例绑雄。

六、- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch;

看代碼

    /**
     * 6. - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)searchSet options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch;
     *
     *  @param searchSet:A character set. This value must not be nil.
     *  @param mask:A character set. This value must not be nil.
     *  @param rangeOfReceiverToSearch:A character set. This value must not be nil.
     *
     *  @return :The range in the receiver of the first character found from aSet within aRange. Returns a range of {NSNotFound, 0} if none of the characters in aSet are found.
     *
     */
    
    NSString *testStr = @"2AasdWAI3U";
    NSCharacterSet *characterSet = [NSCharacterSet uppercaseLetterCharacterSet];
    NSRange strRange = NSMakeRange(0, 4);
    NSRange range = [testStr rangeOfCharacterFromSet:characterSet options:NSCaseInsensitiveSearch range:strRange];
    NSLog(@"range--location=%ld--lengh=%ld",range.location,range.length);

看結(jié)果

2017-05-19 00:04:17.438 NSString你會(huì)用嗎奥邮?[1885:80771] range--location=1--lengh=1

結(jié)論:這里需要注意這個(gè)例子

  • searching the string “strüdel”—containing the decomposed characters “u” (U+0075 LATIN SMALL LETTER U) and “¨” (U+0308 COMBINING DIAERESIS)—with a character set containing the precomposed character “ü” (U+00FC LATIN SMALL LETTER U WITH DIAERESIS) would return the range {NSNotFound, 0}, because none of the characters in the set are found.

七万牺、- (NSRange)rangeOfString:(NSString *)searchString;

看代碼

    /**
     * 7. - (NSRange)rangeOfString:(NSString *)searchString;
     *
     *  @param searchString:The string to search for.
     *
     *  @return :An NSRange structure giving the location and length in the receiver of the first occurrence of searchString.Returns {NSNotFound, 0} if searchString is not found or is empty ("").
     
     *
     */

    NSString *testStr = @"2AasdWAI3U";
    NSRange range = [testStr rangeOfString:@"as"];
    NSLog(@"range--location=%ld--lengh=%ld",range.location,range.length);

看結(jié)果

2017-05-19 00:12:35.795 NSString你會(huì)用嗎?[1975:86532] range--location=2--lengh=2

結(jié)論:由此可知

  • NSString對(duì)象的比較都是檢查它們的點(diǎn)序列的unicode是否相等洽腺,所以返回的searchString的區(qū)間range是不同的脚粟。所以字符序列相等的字符串也可能長(zhǎng)度是不同的。
  • 當(dāng)要呈現(xiàn)給用戶的時(shí)候蘸朋,用這個(gè)方法localizedStandardRangeOfString:核无。

八、- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;

看代碼

    /**
     * 8. - (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;
     *
     *  @param searchString:The string to search for.
     *  @param mask:A mask specifying search options. For possible values, see NSStringCompareOptions.
     *
     *  @return :An NSRange structure giving the location and length in the receiver of the first occurrence of searchString.Returns {NSNotFound, 0} if searchString is not found or is empty ("").
     
     *
     */
    
    NSString *testStr = @"2AasdWAI3U";
    NSRange range = [testStr rangeOfString:@"2" options:NSNumericSearch];
    NSLog(@"range--location=%ld--lengh=%ld",range.location,range.length);

看結(jié)果

2017-05-19 00:27:03.481 NSString你會(huì)用嗎藕坯?[2205:98656] range--location=0--lengh=1

結(jié)論:這個(gè)很簡(jiǎn)單团南,就不多說(shuō)了。


九炼彪、- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch;

看代碼

    /**
     * 9. - (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch;
     *
     *  @param searchString:The string to search for.
     *  @param mask:A mask specifying search options. For possible values, see NSStringCompareOptions.
     *  @param rangeOfReceiverToSearch:The range within the receiver for which to search for aString.Raises an NSRangeException if rangeOfReceiverToSearch is invalid.
     *
     *  @return :An NSRange structure giving the location and length in the receiver of searchString
     within rangeOfReceiverToSearch in the receiver, modulo the options in mask. The range returned is relative to the start of the string, not to the passed-in range. Returns {NSNotFound, 0} if searchString is not found or is empty ("").
     *
     */
    
    NSString *testStr = @"2AasdWAI3U";
    NSRange range = NSMakeRange(0, 4);
    NSRange range1 = [testStr rangeOfString:@"3" options:NSNumericSearch range:range];
    NSLog(@"range1--location=%ld--lengh=%ld",range1.location,range1.length);


看結(jié)果

2017-05-19 00:34:17.048 NSString你會(huì)用嗎吐根?[2301:104399] range1--location=9223372036854775807--lengh=0


結(jié)論:這個(gè)很簡(jiǎn)單。當(dāng)要呈現(xiàn)給用戶的時(shí)候辐马,應(yīng)該使用方法localizedStandardRangeOfString:


十拷橘、- (NSRange)rangeOfString:(NSString ***)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch locale:(NSLocale **)locale;

這個(gè)方法參數(shù)比較多,先看一下參數(shù)配置吧。

參數(shù)配置

看代碼

    /**
     * 10. - (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToSearch locale:(NSLocale *)locale;
     *
     *  @param searchString:The string to search for.
     *  @param mask:A mask specifying search options. For possible values, see NSStringCompareOptions.
     *  @param rangeOfReceiverToSearch:The range within the receiver for which to search for aString.Raises an NSRangeException if rangeOfReceiverToSearch is invalid.
     *  @param locale:The locale to use when comparing the receiver with aString. To use the current locale, pass [NSLocale currentLocale]. To use the system locale, pass nil.
     The locale argument affects the equality checking algorithm. For example, for the Turkish locale, case-insensitive compare matches “I” to “?” (U+0131 LATIN SMALL DOTLESS I), not the normal “i” character.

     *
     *  @return :An NSRange structure giving the location and length in the receiver of aString within aRange in the receiver, modulo the options in mask. The range returned is relative to the start of the string, not to the passed-in range. Returns {NSNotFound, 0} if aString is not found or is empty ("").
     *
     */

    NSString *testStr = @"2AasdWAI3U";
    NSRange range = NSMakeRange(0, 4);
    NSRange range1 = [testStr rangeOfString:@"3" options:NSNumericSearch range:range locale:nil];
    NSLog(@"range1--location=%ld--lengh=%ld",range1.location,range1.length);

看結(jié)果

2017-05-19 00:44:22.482 NSString你會(huì)用嗎冗疮?[2422:112275] range1--location=9223372036854775807--lengh=0

結(jié)論:自己看代碼和過(guò)程萄唇。當(dāng)呈現(xiàn)給用戶時(shí),要使用下面這個(gè)方法 localizedStandardRangeOfString:


十一术幔、- (NSRange)localizedStandardRangeOfString:(NSString *)str;

看代碼

    /**
     * 11. - (NSRange)localizedStandardRangeOfString:(NSString *)str;
     *
     *  @param str:The string to search for. This value must not be nil.
     *
     *  @return :An NSRange structure giving the location and length in the receiver of aString within aRange in the receiver, modulo the options in mask. The range returned is relative to the start of the string, not to the passed-in range. Returns {NSNotFound, 0} if aString is not found or is empty ("").
     *
     */
    
    NSString *testStr = @"2AasdWAI3U";
    NSRange range1 = [testStr localizedStandardRangeOfString:@"aa"];
    NSLog(@"range1--location=%ld--lengh=%ld",range1.location,range1.length);

看結(jié)果

2017-05-19 00:50:58.881 NSString你會(huì)用嗎另萤?[2520:117628] range1--location=1--lengh=2

結(jié)論:這里的比較就是不區(qū)分大小寫(xiě)字母的比較霎苗。


十二拔恰、- (void)enumerateLinesUsingBlock:(void (^)(NSString **line, BOOL ***stop))block;

這個(gè)方法其實(shí)就是枚舉器的使用廊营,數(shù)組和字典都有這個(gè)類似方法仔燕。這個(gè)方法與 (for(... in ...)在效率上基本一致毡鉴,有時(shí)會(huì)快些我們先看一下block這個(gè)參數(shù)

block參數(shù)

我們先準(zhǔn)備個(gè)文件

準(zhǔn)備文件

看代碼

    /**
     * 12. - (void)enumerateLinesUsingBlock:(void (^)(NSString *line, BOOL *stop))block;
     *
     *  @param block:The block executed for the enumeration.The block takes two arguments:
     *
     */
    
    //字符串
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"];
    NSData *fileData = [NSData dataWithContentsOfFile:filePath];
    NSString *fileStr = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
    
    //一行一行的讀取
    [fileStr enumerateLinesUsingBlock:^(NSString * _Nonnull line, BOOL * _Nonnull stop) {
        
        NSLog(@"%@---line",line);
        
    }];

看結(jié)果

2017-05-19 01:03:16.160 NSString你會(huì)用嗎敢靡?[2780:127173] AASsswj1wjihoi`w`9897298`7298`2@&#&%#*(&)!&)!AASsswj---line
2017-05-19 01:03:16.160 NSString你會(huì)用嗎畸冲?[2780:127173] 1wjihoi`w`9897298`7298`2@&#&%#*(&)!&)!---line

結(jié)論:枚舉器的使用财异。


十三毒嫡、- (void)enumerateSubstringsInRange:(NSRange)range options:(NSStringEnumerationOptions)opts usingBlock:(void (^)(NSString **substring, NSRange substringRange, NSRange enclosingRange, BOOL ***stop))block;

看參數(shù)癌蚁,如下圖

枚舉參數(shù)

這里還有個(gè)枚舉值NSStringEnumerationOptions

typedef NS_OPTIONS(NSUInteger, NSStringEnumerationOptions) {
    // Pass in one of the "By" options:
    NSStringEnumerationByLines = 0,                       // Equivalent to lineRangeForRange:
    NSStringEnumerationByParagraphs = 1,                  // Equivalent to paragraphRangeForRange:
    NSStringEnumerationByComposedCharacterSequences = 2,  // Equivalent to rangeOfComposedCharacterSequencesForRange:
    NSStringEnumerationByWords = 3,
    NSStringEnumerationBySentences = 4,
    // ...and combine any of the desired additional options:
    NSStringEnumerationReverse = 1UL << 8,
    NSStringEnumerationSubstringNotRequired = 1UL << 9,
    NSStringEnumerationLocalized = 1UL << 10              // User's default locale
};

看代碼

    /**
     * 13. - (void)enumerateSubstringsInRange:(NSRange)range options:(NSStringEnumerationOptions)opts usingBlock:(void (^)(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop))block;
     *
     *  @param range:The range within the string to enumerate substrings.
     *  @param opts:Options specifying types of substrings and enumeration styles.
     *  @param block:The block executed for the enumeration.The block takes four arguments.
     *
     */
    
    //字符串
    NSString *fileStr = @"212ehohgivieye0ohsoIFIFUFYDST";
    NSRange range = NSMakeRange(0, 10);
    
    //一個(gè)字符一字符的讀取
    [fileStr enumerateSubstringsInRange:range options:NSStringEnumerationByWords usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop) {
        NSLog(@"%@--substring",substring);
    }];

看結(jié)果

2017-05-19 01:22:41.689 NSString你會(huì)用嗎?[3266:146676] 212ehohgiv--substring

結(jié)論:需要注意

  • If this method is sent to an instance of NSMutableString, mutation (deletion, addition, or change) is allowed, as long as it is within enclosingRange. After a mutation, the enumeration continues with the range immediately following the processed range, after the length of the processed range is adjusted for the mutation. (The enumerator assumes any change in length occurs in the specified range.)
  • For example, if the block is called with a range starting at location N, and the block deletes all the characters in the supplied range, the next call will also pass N as the index of the range. This is the case even if mutation of the previous range changes the string in such a way that the following substring would have extended to include the already enumerated range. For example, if the string "Hello World" is enumerated via words, and the block changes "Hello " to "Hello", thus forming "HelloWorld", the next enumeration will return "World" rather than "HelloWorld".

后記

很晚了兜畸,睡覺(jué)了努释。待續(xù)~~~~~

花海
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咬摇,隨后出現(xiàn)的幾起案子伐蒂,更是在濱河造成了極大的恐慌,老刑警劉巖肛鹏,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逸邦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡在扰,警方通過(guò)查閱死者的電腦和手機(jī)缕减,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)芒珠,“玉大人桥狡,你說(shuō)我怎么就攤上這事≈遄浚” “怎么了裹芝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)娜汁。 經(jīng)常有香客問(wèn)我嫂易,道長(zhǎng),這世上最難降的妖魔是什么存炮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任炬搭,我火速辦了婚禮,結(jié)果婚禮上穆桂,老公的妹妹穿的比我還像新娘宫盔。我一直安慰自己,他們只是感情好享完,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布灼芭。 她就那樣靜靜地躺著,像睡著了一般般又。 火紅的嫁衣襯著肌膚如雪彼绷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天茴迁,我揣著相機(jī)與錄音寄悯,去河邊找鬼。 笑死堕义,一個(gè)胖子當(dāng)著我的面吹牛猜旬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倦卖,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼洒擦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了怕膛?” 一聲冷哼從身側(cè)響起熟嫩,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褐捻,沒(méi)想到半個(gè)月后掸茅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柠逞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年倦蚪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片边苹。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陵且,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出个束,到底是詐尸還是另有隱情慕购,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布茬底,位于F島的核電站沪悲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阱表。R本人自食惡果不足惜殿如,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一贡珊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涉馁,春花似錦门岔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至帮坚,卻和暖如春妻往,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背试和。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工讯泣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阅悍。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓判帮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親溉箕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晦墙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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