例如,我有一個string:
“很高興見到你”
,當我們計算重復字母時有 13 個字母,但我想char array從這個字串中創建一個不重復字母的字母,我的意思是上面的字串應該創建一個arraylike
{'N', 'i', 'c', 'e', 't', 'o', 'y', 'u', 'm'}
我在谷歌上找了 2 個小時的答案,但我什么也沒找到,有很多關于字串和字符陣列的答案,但不是我的情況的答案。我以為我可以通過檢查陣列中的每個字母 2for個周期來撰寫代碼,但這次我遇到了語法錯誤,所以我決定問一下。
uj5u.com熱心網友回復:
你可以這樣做:
var foo = "Nice to meet you";
var fooArr = s.ToCharArray();
HashSet<char> set = new();
set.UnionWith(fooArr);
//or if you want without whitespaces you could refactor this as below
set.UnionWith(fooArr.Where(c => c != ' '));
更新:你甚至可以做一個擴展方法:
public static IEnumerable<char> ToUniqueCharArray(this string source, char? ignoreChar)
{
var charArray = source.ToCharArray();
HashSet<char> set = new();
set.UnionWith(charArray.Where(c => c != ignoreChar));
return set;
}
然后您可以將其用作:
var foo = "Nice to meet you";
var uniqueChars = foo.ToUniqueCharArray(ingoreChar: ' ');
// if you want to keep the whitespace
var uniqueChars = foo.ToUniqueCharArray(ingoreChar: null);
uj5u.com熱心網友回復:
這段代碼完成了這項作業:
var sentence = "Nice To meet you";
var arr = sentence.ToLower().Where(x => x !=' ' ).ToHashSet();
Console.WriteLine(string.Join(",", arr));
ToLower()如果您不區分大寫和小寫,我已經添加,如果區分大小寫,您只需推遲此擴展名.. HashSet 抑制所有重復的字母
測驗:小提琴
uj5u.com熱心網友回復:
我試過這個,它也有效
"Nice to meet you".Replace(" ", "").ToCharArray().Distinct();
uj5u.com熱心網友回復:
字串的 ToCharArray 方法只是您需要的。
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
string str = "Nice to meet you";
char[] carr = str.ToCharArray();
for(int i = 0; i < carr.Length; i )
Console.WriteLine (carr[i]);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441573.html
