###### 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]);
}
}
```