2014-02-07 201 views
-3

我有一些分割和檢查字符串的問題。C# - 分割字符串

我需要拆分字符串,替換一半,檢查是否與第二個字符串相同。

例如:第一串=東京第二串= koyto

洙... S = A + B = B + A 的S - A = B和S - B = A

a和b是一個字符串(S)的一部分,並且可以具有不同的長在此情況下A =以和b = KOY

第一我需要檢查字符串長度 - 是是不同的 - 然後寫錯誤 - 很容易

我認爲我可以比較ASCII中的字符串(區分大小寫不是即時消息portant),它可以確定,但... 我可以創建字符串皮克斯已經在ASCII中有相同的大小,但不是從第一個字符串的拆分和反轉部分創建...

任何想法?

static void Main(string[] args) 
    { 
     string S = "tokyo"; 
     string T = "kyoto"; 
      if (S.Length == T.Length) 
      { 
       split string ? 
      } 
     else 
     Console.WriteLine("This two words are different. No result found."); 
     Console.Read(); 
    } 
+4

這是什麼問題? –

+0

我認爲你需要重新說出這個(並檢查你的拼寫),以便你有一個明確的問題和一個明確的問題,你正在解決你的問題。當我*想*我知道你在做什麼,你的代碼沒有做任何這樣的事情(也沒有使用任何'split')。 – crashmstr

+0

我的意思是我看到很多問題......但不知道OP在問什麼問題1? 'bool結果'一個局部變量從來沒有使用過,在Console.Read()之後超出了範圍......爲什麼? –

回答

4

我會建議做與字符串的比較。您可以使用String.ToLower()方法將它們都轉換爲小寫以進行比較。

我不完全相信你正在試圖解決什麼問題,但是從我瞭解你們的檢查,如果串S可以拆分成可以重新排列,使串T.

2子要檢查這一點,你會希望類似於以下

for (int i = 0; i < S.length; i++) { 
    string back = S.substring(i); 
    string front = S.substring(0,i); 
    if (T.equals(back + front)) 
     result = true; 
} 

希望的東西這有助於

+0

這是不正確的,因爲東京和kytoo是不一樣的從拆分和交換) – user3285382

+0

我很困惑你的陳述。如果單詞是「tokyo」和「kyoto」,這段代碼會將結果設置爲true,如果單詞是「tokyo」和「kytoo」,這將是假的,這對我而言是正確的行爲 – shmyq

+0

也許我也是愚蠢的,但名稱「結果」不存在於當前的情況下,我wolud喜歡發送Console.WriteLine消息給用戶 – user3285382

0

如果你想比較兩個集合的平等,你應該考慮使用LINQ:

static void Main(string[] args) 
    { 
     string S = "tokyo"; 
     string T = "kyoto"; 
     if (S.Length == T.Length) 
     { 
      if (S.Intersect(T).Any()) 
      { 
       Console.WriteLine("The Contents are the same"); 
       Console.Read(); 
      } 
     } 
     else 
     Console.WriteLine("This two words are diferent. No result found."); 
     Console.Read(); 
    } 
+0

,不需要'ToCharArray' –

+0

@ Selman22哎喲,當我編輯我的代碼時忘記刪除它們,編輯並更正。浪費內存;) –

+0

這是不正確的,因爲東京和kytoo是不一樣的(從拆分和交換構建) – user3285382