2013-03-07 79 views
7

我想知道如何用「除最後數字字符」的條件替換字符串的字符?屏蔽除最後n個字符以外的字符串的所有字符

例子:

string = "4111111111111111"; 

而且我想使其成爲

new_string = "XXXXXXXXXXXXX1111" 

在這個例子中我替換字符 「X」 除了最後4個字符。

我該怎麼做到這一點?

+1

ü每一次的意思是最後四個字符 – tariq 2013-03-07 03:03:00

+0

@tariq,它不是固定的。不是每次 – 2013-03-07 03:03:48

+0

那麼決定你想顯示多少個字符 – tariq 2013-03-07 03:06:02

回答

6

這是一種思考方式。撥打最後一個數字字符離開n

  1. 有多少個字符將被X被取代?字符串的長度減去n
  2. 我們如何用其他字符替換字符?您不能直接修改string,但可以創建一個新的。
  3. 如何從原始字符串中獲取最後的n個字符?有幾種方法可以做到這一點,但最簡單的方法可能是Substring,它允許我們通過指定起始點和可選的終點來獲取字符串的一部分。

因此,這將是這個樣子(其中n是從原來離開的字符數,並且str是原始字符串 - string不能成爲你變量的名稱,因爲它是一個保留關鍵字) :

// 2. Start with a blank string 
var new_string = ""; 

// 1. Replace first Length - n characters with X 
for (var i = 0; i < str.Length - n; i++) 
    new_string += "X"; 

// 3. Add in the last n characters from original string. 
new_string += str.Substring(str.Length - n); 
+0

謝謝!我會試試 – 2013-03-07 03:05:35

+0

@ cheol.lui,這可能對你有用,但是對於創建變量,循環和常量字符串+一次一個字符以及垃圾回收方面的矯枉過正......是的,說明是有效的以及給你一個精神「如何解決」,但絕對不會像其他選項一樣有效。 – DRapp 2013-03-07 03:29:57

13

會適合你嗎?

var input = "4111111111111111"; 
var length = input.Length; 
var result = new String('X', length - 4) + input.Substring(length - 4); 

Console.WriteLine(result); 

// Ouput: XXXXXXXXXXXX1111 
+0

謝謝!我會試試這個 – 2013-03-07 03:04:10

+0

這個解決方案對我來說很好,而且很簡潔。謝謝! – Lexi847942 2016-01-15 17:24:22

2
StringBuilder sb = new StringBuilder(); 
Char[] stringChar = string.toCharArray(); 
for(int x = 0; x < stringChar.length-4; x++){ 
    sb.append(stringChar[x]); 
} 
sb.append(string.substring(string.length()-4)); 

string = sb.toString(); 
9

如何像...

new_string = new String('X', YourString.Length - 4) 
        + YourString.Substring(YourString.Length - 4); 

根據當前字符串-4的長度創建一個新字符串,並將其全部設置爲「X」。然後加上原來的字符串

+0

這是我見過的最美麗的實現。布拉沃。你做了什麼,我在一個7線。 – 2013-03-07 03:09:54

1

我想你可以使用Select與指數

string input = "4111111111111111"; 
string new_string = new string(input.Select((c, i) => i < input.Length - 4 ? 'X' : c).ToArray()); 
1

呂, 請嘗試使用下面的最後4個字符...

string dispString = DisplayString("4111111111111111", 4); 

創建一個功能通過原始字符串和數字。

public string DisplayString(string strOriginal,int lastDigit) 
    { 
     string strResult = new String('X', strOriginal.Length - lastDigit) + strOriginal.Substring(strOriginal.Length - lastDigit); 
     return strResult; 
    } 

可能幫助你....

相關問題