字符串操作

一栽渴、幾個經(jīng)常用到的字符串的截取

string str="123abc456";
int i=3;
1 取字符串的前i個字符
str=str.Substring(0,i); // or str=str.Remove(i,str.Length-i);
2 去掉字符串的前i個字符:
str=str.Remove(0,i); // or str=str.Substring(i);
3 從右邊開始取i個字符:
str=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i);
4 從右邊開始去掉i個字符:
str=str.Substring(0,str.Length-i); // or str=str.Remove(str.Length-i,i);
5 如果字符串中有"abc"則替換成"ABC"
str=str.Replace("abc","ABC");

二尖坤、IndexOf和LastIndexOf是什么?

indexOf 和 lastIndexOf 都是索引文件
indexOf 是查某個指定的字符串在字符串首次出現(xiàn)的位置(索引值) (也就是從前往后查)闲擦。
Index("",0)//0代表從指定位置開始查詢慢味,查詢失敗后返回 -1
lastIndexOf 是從右向左查某個指定的字符串在字符串中最后一次出現(xiàn)的位置(也就是從后往前查)

三、字符串指定字符截取轉數(shù)組

string[] sArray=st.Trim().Split(';');

四墅冷、三個數(shù)值取最大值和最小值

int i=1;
int j=2;
int k=3;
int minNum=Math.Min(Math.Min(i,j),k);//最小值
int maxNum=Math.Max(Math.Max(i,j),k);//最大值

五纯路、字符串移除再插入

lon = lon.Remove(a, 1).Insert(a, "°");
//先找出位置
int pos=s.indexOf(fs);
//取位置前部分+替換字符串+位置(加上查找字符長度)后部分
string newstr = s.substring(0,pos)+th+s.substring(pos+fs.length);

六、String.IndexOf

String.IndexOf 方法 (Char, Int32, Int32)
報告指定字符在此實例中的第一個匹配項的索引(從0開始)寞忿。搜索從指定字符位置開始驰唬,并檢查指定數(shù)量的字符位置。
String.IndexOf(value, startIndex, count)
參數(shù)
value:要查找的 Unicode 字符腔彰。
startIndex:搜索起始位置叫编。
count:要檢查的字符位置數(shù)。
返回值(Int32):
如果找到該字符霹抛,則為 value 的索引位置宵溅;否則如果未找到,則為 -1上炎。

七、String.LastIndexOf

String.LastIndexOf 方法
報告指定的 Unicode 字符或 String 在此實例中的最后一個匹配項的索引位置。

八藕施、String.Substring

String.Substring 方法
從此實例檢索子字符串寇损。
名稱 說明
String.Substring (Int32) 從此實例檢索子字符串。子字符串從指定的字符位置開始裳食。
String.Substring (Int32, Int32) 從此實例檢索子字符串矛市。子字符串從指定的字符位置開始機截取有指定的長度。

九诲祸、C#字符串比較的原理是什么浊吏?

原理:
  從兩個字符串的第一個字符開始逐個進行比較(按字符的ASCII值進行大小比較),直到出現(xiàn)不同的字符或遇到‘\0’為止救氯。
  如果全部字符都相同找田,就認為兩字符串相等,返回0着憨;
  若出現(xiàn)了不相同的字符墩衙,則以第一個不相同的字符比較結果為準,若前者字符大于后者甲抖,則返回1漆改,否則返回-1.
注意:
順序是第一個對象與第二個對象比較!
  前>后 return 1;
  前=后 return 0准谚;
  前<后 return -1
CompareTo方法與Compare方法實現(xiàn)的功能是一樣的挫剑,只是參數(shù)的位置放的不一樣而已

eg. s1.CompareTo(s2):
  表示字符串s1與s2進行大小比較,
  s1<s2 s1.CompareTo(s2)結果為:-1
  s1=s2 s1.CompareTo(s2)結果為:0
  s1>s2 s1.CompareTo(s2)結果為:1

eg . String.Compare(s1,s2)該方法所顯現(xiàn)的功能與上面一樣柱衔,連返回值結果也一樣樊破。
  表示字符串s1與s2進行大小比較,
  s1<s2 String.Compare(s1,s2)結果為:-1
  s1=s2 String.Compare(s1,s2)結果為:0
  s1>s2 String.Compare(s1,s2)結果為:1

十秀存、將字符串轉換成字符數(shù)組

char[] ca = strText.ToCharArray();

十一捶码、獲取兩個字符串的相似度

        //比較兩個字符串的相似度
        public float GetSimilarityWith(string str1, string str2)
        {
            //計算兩個字符串的長度。  
            int len1 = str1.Length;
            int len2 = str2.Length;
            //建立上二維數(shù)組
            int[,] dif = new int[len1 + 1, len2 + 1];
            //賦初始值或链。  
            for (int a = 0; a <= len1; a++)
            {
                dif[a, 0] = a;
            }
            for (int a = 0; a <= len2; a++)
            {
                dif[0, a] = a;
            }

            //計算兩個字符是否一樣惫恼,計算左上的值  
            int temp;
            for (int i = 1; i <= len1; i++)
            {
                for (int j = 1; j <= len2; j++)
                {
                    if (str1[i - 1] == str2[j - 1])
                    {
                        temp = 0;
                    }
                    else
                    {
                        temp = 1;
                    }
                    //取三個值中最小的  
                    dif[i, j] = Math.Min(Math.Min(dif[i - 1, j - 1] + temp, dif[i, j - 1] + 1), dif[i - 1, j] + 1);
                }
            }
            //計算相似度  
            float similarity = 1 - (float)dif[len1, len2] / Math.Max(str1.Length, str2.Length);
            return similarity;
        }

十二、給定一個字符串澳盐,判斷其是否只包含有漢字

        private bool IsChinese(string str)
        {
            Regex rx = new Regex("^[\u4e00-\u9fa5]$");
            for (int i = 0; i < str.Length; i++)
            {
                if (rx.IsMatch(str.Substring(i, 1)))
                {
                    continue;
                }
                else
                {
                    return false;
                }
            }
            return true;
        }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載祈纯,如需轉載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末叼耙,一起剝皮案震驚了整個濱河市腕窥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筛婉,老刑警劉巖簇爆,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癞松,死亡現(xiàn)場離奇詭異,居然都是意外死亡入蛆,警方通過查閱死者的電腦和手機响蓉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哨毁,“玉大人枫甲,你說我怎么就攤上這事《笸剩” “怎么了想幻?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長话浇。 經(jīng)常有香客問我脏毯,道長,這世上最難降的妖魔是什么凳枝? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任抄沮,我火速辦了婚禮,結果婚禮上岖瑰,老公的妹妹穿的比我還像新娘叛买。我一直安慰自己,他們只是感情好蹋订,可當我...
    茶點故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布率挣。 她就那樣靜靜地躺著,像睡著了一般露戒。 火紅的嫁衣襯著肌膚如雪椒功。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天智什,我揣著相機與錄音动漾,去河邊找鬼。 笑死荠锭,一個胖子當著我的面吹牛旱眯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播证九,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼删豺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了愧怜?” 一聲冷哼從身側響起呀页,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拥坛,沒想到半個月后蓬蝶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尘分,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年丸氛,在試婚紗的時候發(fā)現(xiàn)自己被綠了音诫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡雪位,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梨撞,到底是詐尸還是另有隱情雹洗,我是刑警寧澤,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布卧波,位于F島的核電站时肿,受9級特大地震影響,放射性物質發(fā)生泄漏港粱。R本人自食惡果不足惜螃成,卻給世界環(huán)境...
    茶點故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望查坪。 院中可真熱鬧寸宏,春花似錦、人聲如沸偿曙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽望忆。三九已至罩阵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間启摄,已是汗流浹背稿壁。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留歉备,地道東北人傅是。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像威创,于是被迫代替她去往敵國和親落午。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,580評論 2 349

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