1. 程式人生 > >Object-c 中擷取包含(中、英文、表情符號emojiicon)混合字串的每個字元並獲取此字元的unicode值

Object-c 中擷取包含(中、英文、表情符號emojiicon)混合字串的每個字元並獲取此字元的unicode值

ios中的nsstring 使用utf16編碼,當字串中包含中、英文、特殊字元、emojiicon 的時候,使用常規的characterAtIndex:會出現錯誤,因為這種方式是一個單元的utf16編碼位擷取,當擷取ascii範圍內的字元時,每個單元的長度是1(utf16對應兩個位元組),對於其它特殊字元就不一樣了,因此正確的方式應該是:


ps:上傳程式碼出現只能顯示第一行問題只能貼圖

相關推薦

Object-c 擷取包含英文表情符號emojiicon)混合字串每個字元獲取字元unicode

ios中的nsstring 使用utf16編碼,當字串中包含中、英文、特殊字元、emojiicon 的時候,使用常規的characterAtIndex:會出現錯誤,因為這種方式是一個單元的utf16編碼位擷取,當擷取ascii範圍內的字元時,每個單元的長度是1(utf16對

C#操作Word2)—— 新建開啟儲存和關閉文件

       本文中主要介紹C#中對word文件進行新建、開啟、儲存、關閉的方法。在本次試驗之前,先佈置試驗環境。首先,先新建一個winform的工程WordTest:         然後,在介面中新增一個按鈕,按鈕文字就叫做“測試”:         在按鈕的點選事

.net平臺下C#socket通信

copy 成功 int 原因 獲取數據 ++ etl any repl 本文主要講述: 1、正常通信中握手建立 2、一對多的通信 3、發送接收數據格式轉換 4、資源釋放 5、開啟並保持服務監聽 1、握手建立正常的通信通道   項目需要通信的雙方(假設是一個上位機、一個下

sklearn的train_test_split資料分割)preprocessing歸一化)cross_val_score交叉驗證)

1、train_test_split(資料分割): from sklearn.model_selection import train_test_split X=np.random.randint(0,100,(10,4)) y=np.random.randint(0,3,10) y.

python傳送郵件普通文字檔案附件圖片等)

1、傳送普通文字檔案 #coding=utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header host = 'smtp.126.com' # 設定

python在arcgis案例開發空間求交連線以及excel資料匯出)

這是使用python寫的第二工具了,可以說這麼計算機語言也是初次接觸,還好使用過c、 c#、JAVA等計算機語言,所以在使用python的使用也不是完全找不到北。 這是國慶之前做的一個專案。首先我來說一下我所用到的資料:山最高點(shapefile點資料)、山底座資料(sh

PHP,public公共成員) private私有成員) protected保護成員)三者的區別

在PHP中,類中的變數,也稱為成員變數(也有稱為屬性或欄位的)。成員變數用來儲存資訊資料,或與成員方法進行互動來實現某項功能。 定義成員變數的格式為: 關鍵字 成員變數名 關鍵字可以使用:public、private、protected、static、final 現在我

Python的列表新增二元列表連線查詢排序反序刪除分片操作負索引

#_*_coding:UTF-8_*_ # 列表list_name=[element1,element2,element3...] # 1.新增元素 # append(value)使用者在List的尾部新增一個元素 # insert(index,value)第一個引數ind

C# 影象處理(一)影象縮放螢幕擷取影象合併儲存影象)

轉自https://www.cnblogs.com/MRRAOBX/articles/6184646.html Image screen = getScreen(); // 擷取螢幕 saveImage(screen, screen.Size, @"

C++ 獲取字串的中文英文數字等

在 C++ 程式設計中經常處理 Unicode 編碼的字串,Unicode 通常用兩個位元組表示一個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為 0 就可以。每一個字元在 Unicode 編碼表中對應為一個編號。例如:B 對應 0042在 Unicod

object-c學習:@property 屬性 assign,nonatomic,retain,strong,weak的區別

strong關鍵字與retain關似,用了它,引用計數自動+1,用例項更能說明一切 @property (nonatomic, strong) NSString *string1;    @property (nonatomic, strong) NSString *string2;   有這樣兩個屬性

C#怎麽解析JSON數據,獲取到其中的

叠代 結構 strong roc sin mark 16px blog size 【1】首先我們根據創建一個json字符轉 string json = @"[{‘phantom‘:true,‘id‘:‘20130717001‘,‘data‘:{‘MID‘:1019,‘N

Object C語法學習筆記二)

1、@property與@synthesize配對使用。 @property預編譯指令的作用是自動宣告屬性的setter和getter方法。 @synthesize 建立了該屬性的訪問程式碼 功能:讓編譯好器自動編寫一個與資料成員同名的方法宣告來省去讀寫方法的宣告。 2、強引用(__st

c++類比python 學習遍歷列表異常處理丟擲異常)

遍歷列表 for i in list: print i c++11 的特性 1、這種情況是改變i的值並不改變vector,相當於只讀型別,淺拷貝 for(int i:vector) //

C#之基礎篇①VS快捷鍵WriteLine()與Write()區別ReadKey()與ReadLine()區別double,float,decimal區別)

     今天我們來分享一下VS視訊中第一講內容,這篇內容主要分享的是VS工具的使用以及簡單的資訊顯示、變數宣告。 一、導圖類: 二、程式碼類 2.1、顯示資訊 Console.WriteLine("************

JS陣列實現倒序遍歷陣列,陣列連線字串

// =================== 求最大值===================================== <script> var arr = [10,35,765,21345,678,89]; va

lintcode55:比較兩個字串A和B,確定A是否包含B所有的字元

*樣例 給出 A = “ABCD” B = “ACD”,返回 true 給出 A = “ABCD” B = “AABC”, 返回 false 注意 在 A 中出現的 B 字串裡的字元不需要連續或

比較兩個字串A和B,確定A是否包含B所有的字元

如題 樣例 給出 A = "ABCD" B = "ACD",返回 true 給出 A = "ABCD" B = "AABC", 返回 false 注意 在 A 中出現的 B 字串裡的字元不需要連續或者有序。 目前思路是分別掃描兩個字串得到兩個map&l

樹莓派2):將感測器資料上傳到 AWS IoT 利用Kibana進行展示

1. 感測器安裝及配置 1.1 DHT22 安裝 DHT22 是一款溫度與溼度感測器,它有3個針腳,左邊的第一個引腳(#1)為3-5V電源,第二個引腳(#2)連線到資料輸入引腳,最右邊的引腳(#4)接地。 而樹莓派3B 一共有40個針腳(GPIO,General Purpose I/

C++單例模式執行緒安全記憶體釋放)

一、懶漢模式:即第一次呼叫該類例項的時候才產生一個新的該類例項,並在以後僅返回此例項。 需要用鎖,來保證其執行緒安全性:原因:多個執行緒可能進入判斷是否已經存在例項的if語句,從而non thread safety. 使用double-check來保證thr