我想知道如何用「除最後數字字符」的條件替換字符串的字符?屏蔽除最後n個字符以外的字符串的所有字符
例子:
string = "4111111111111111";
而且我想使其成爲
new_string = "XXXXXXXXXXXXX1111"
在這個例子中我替換字符 「X」 除了最後4個字符。
我該怎麼做到這一點?
我想知道如何用「除最後數字字符」的條件替換字符串的字符?屏蔽除最後n個字符以外的字符串的所有字符
例子:
string = "4111111111111111";
而且我想使其成爲
new_string = "XXXXXXXXXXXXX1111"
在這個例子中我替換字符 「X」 除了最後4個字符。
我該怎麼做到這一點?
這是一種思考方式。撥打最後一個數字字符離開n
:
X
被取代?字符串的長度減去n
。string
,但可以創建一個新的。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);
謝謝!我會試試 – 2013-03-07 03:05:35
@ cheol.lui,這可能對你有用,但是對於創建變量,循環和常量字符串+一次一個字符以及垃圾回收方面的矯枉過正......是的,說明是有效的以及給你一個精神「如何解決」,但絕對不會像其他選項一樣有效。 – DRapp 2013-03-07 03:29:57
會適合你嗎?
var input = "4111111111111111";
var length = input.Length;
var result = new String('X', length - 4) + input.Substring(length - 4);
Console.WriteLine(result);
// Ouput: XXXXXXXXXXXX1111
謝謝!我會試試這個 – 2013-03-07 03:04:10
這個解決方案對我來說很好,而且很簡潔。謝謝! – Lexi847942 2016-01-15 17:24:22
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();
如何像...
new_string = new String('X', YourString.Length - 4)
+ YourString.Substring(YourString.Length - 4);
根據當前字符串-4的長度創建一個新字符串,並將其全部設置爲「X」。然後加上原來的字符串
這是我見過的最美麗的實現。布拉沃。你做了什麼,我在一個7線。 – 2013-03-07 03:09:54
我想你可以使用Select
與指數
string input = "4111111111111111";
string new_string = new string(input.Select((c, i) => i < input.Length - 4 ? 'X' : c).ToArray());
呂, 請嘗試使用下面的最後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;
}
可能幫助你....
ü每一次的意思是最後四個字符 – tariq 2013-03-07 03:03:00
@tariq,它不是固定的。不是每次 – 2013-03-07 03:03:48
那麼決定你想顯示多少個字符 – tariq 2013-03-07 03:06:02