![](/img/trans.png)
[英]How do I capitalized specific two letter word in a string in addition to the first letter of any word?
[英]Finding all word with a specific letter in a string
我需要找出如何輸出所有包含 "a"
的單詞"a"
。 我的所有月份都有一個string
,想要將包含 "a"
的string
輸出到console 。 這是我到目前為止所擁有的
string[] Månedsdage = {
"Januar", "Februar", "Marts",
"April", "Maj", "Juni",
"juli", "August", "September",
"Oktober", "November", "December",
"Bichat" };
for (int i = 0; i < Månedsdage.Length; i++)
{
for (int j = 0; j < Månedsdage[i].Length; j++)
{
if (Månedsdage[i].Substring(j,1) == "a")
{
Console.WriteLine("Alle måneder med A: ");
Console.WriteLine(Månedsdage[j]);
Console.ReadLine();
}
}
}
那這個呢
string[] result = Månedsdage.Where(x=> x.ToLower().Contains('a')).ToArray();
.Contains() :要獲取所有包含字母a
單詞,我們使用了字符串方法。 此擴展方法檢查給定字符串中是否存在作為參數傳遞的子字符串。
Where() :要對字符串數組中的每個元素應用相同的條件,我們使用了Linq擴展方法。
ToLower() :此方法用於使字符串的所有字符都小寫。 因此,它不會錯過“ A”和“ a”。 ToLower()
將在結果數組中包含April
。 如果您不希望April
出現在數組中,請不要使用ToLower()
POC: .net小提琴
輸出:
Januar
Februar
Marts
April /*ToLower() ;)*/
Maj
August
Bichat
不幸的是, Contains
不接受 StringComparison
,但是IndexOf
接受 :我們可以嘗試過濾掉索引"a"
不是負數 (即word
出現"a"
)的word
s
string[] Månedsdage = {
"Januar", "Februar", "Marts",
"April", "Maj", "Juni",
"juli", "August", "September",
"Oktober", "November", "December",
"Bichat" };
// StringComparison.CurrentCulture if you want case sensitive search
var result = Månedsdage
.Where(word => word.IndexOf("a", StringComparison.CurrentCultureIgnoreCase) >= 0);
Console.Write(string.Join(Environment.NewLine, result));
輸出:
Januar
Februar
Marts
April
Maj
August
Bichat
這是一個不使用Linq
的示例。
您只需要使用一個循環和IndexOf
即可實現所需的功能:
string[] Månedsdage = {
"Januar", "Februar", "Marts",
"April", "Maj", "Juni",
"juli", "August", "September",
"Oktober", "November", "December",
"Bichat" };
for (int i = 0; i < Månedsdage.Length; i++)
{
// if IndexOf("a") >= 0 then there is a match
if (Månedsdage[i].IndexOf("a", StringComparison.CurrentCultureIgnoreCase) > -1)
{
Console.WriteLine("Alle måneder med A: ");
Console.WriteLine(Månedsdage[i]);
}
}
如果您不希望"A"
匹配,請刪除IndexOf
中的StringComparison.CurrentCultureIgnoreCase
。
另外,您可以使用ToCharArray()
並使用2個循環:
foreach (string word in Månedsdage)
{
foreach(char c in word.ToCharArray())
{
if (c == 'a' || c == 'A')
{
Console.WriteLine("Alle måneder med A: ");
Console.WriteLine(word);
// a match has been found, break out of the inner loop and move onto next word
break;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.