---
# System prepended metadata

title: C#判斷字串首字
tags: [C#]

---

###### tags: `C#`
# C#判斷字串首字
[C# 字串切割，判斷單詞首字元](https://learn.microsoft.com/zh-tw/training/modules/csharp-arrays-operations/7-challenge-2)
```csharp=
/*
 * 找出字串內B字元開頭單詞
 * */

//input
string orderStream = "B123,C234,A345,C15,B177,G3003,C235,B179";
//output
B123
B177
B179
```
## 使用函式
- Split()
- StarWiths()
- ToCharArray()-另種方法
## 解題思路
第一次解題時
1. 拆字串為字串陣列
2. 字串陣列拆字元陣列
3. 字元陣列判斷首字是否為'B'
4. 為B則印出該單詞

後來看到官方解答更為簡單
1. 拆字串為字串陣列
2. 字串陣列元素使用函式判斷首字是否為'B'
3. 為B則印出該字單詞
---
## 程式碼防雷線
---

### 第一次自己解
```csharp=
string orderStream = "B123,C234,A345,C15,B177,G3003,C235,B179";
//切割成字串陣列
string[] orderStreamArr = orderStream.Split(',');

for (int i = 0; i < orderStreamArr.Length; i++)
{
    //切割字元陣列，判斷首字元是否為'B'，是就印出來
     char[] orderStreamChar = orderStreamArr[i].ToCharArray();
     if (orderStreamChar[0] == 'B')
     {
         Console.WriteLine(orderStreamArr[i]);
     }
}
```
<br/>

### StarsWith改良版
```csharp=
string orderStream = "B123,C234,A345,C15,B177,G3003,C235,B179";
//切割成字串陣列
string[] orderStreamArr = orderStream.Split(',');

for (int i = 0; i < orderStreamArr.Length; i++)
{
    if (orderStreamArr[i].StartsWith("B"))
    {
        Console.WriteLine(orderStreamArr[i]);
    }
}
```