簡體   English   中英

檢查字符串中的字符是1還是0

[英]Check if a character in a string is a 1 or a 0

我通過一個看起來像這個* 000000或* 110101的com端口接收一個字符串,或者介於兩者之間的任何東西。 每個字符代表我所擁有的PCB上的繼電器狀態,星號代表第一個繼電器后的第一個字符,依此類推。 我需要分別檢查每個字符是1還是0,然后相應地將標簽設置為ON或OFF。

我的代碼是這樣的:

if(char 1 == "1")
{

    label4.Text = "ON";    
}
else
{
    label4.Text = "OFF";
}

等等所有6個字符。 但我不知道如何分隔每個角色。

謝謝!

聽起來你想String上使用索引器來提取一個char

string text = "*110101"; // Wherever you get this from...
label4.Text = text[1] == '1' ? "ON" : "OFF";
label5.Text = text[2] == '1' ? "ON" : "OFF";
label6.Text = text[3] == '1' ? "ON" : "OFF";
label7.Text = text[4] == '1' ? "ON" : "OFF";
label8.Text = text[5] == '1' ? "ON" : "OFF";
label9.Text = text[6] == '1' ? "ON" : "OFF";

這假設您很高興標簽文本對於除“1”以外的任何值設置為“OFF”。 (如注釋中所述,您對字符串文字使用雙引號,但對字符文字使用單引號。)

注意我在這里使用條件運算符來簡化代碼:如果你想基於條件基本上在兩個值(“ON”和“OFF”)之間進行選擇,條件運算符比if / else簡單得多。 當然,不要過度,但值得熟悉。

但是,我還建議您將相關標簽放入集合中。 然后你可以使用類似的東西:

for (int i = 0; i < 6; i++)
{
    toggles[i].Text = text[i + 1] == '1' ? "ON" : "OFF";
}

你已經有了這個字符串?

您可以在字符串對象上使用索引器來訪問字符。

例:

string s = "110110";
if (s[3] == '0') label4.Text = "ON";

你可以得到具體的char:

string relaysStatus =“100110”;
char c = relaysStatus.ElementAt(0);

或者你可以將所有轉換為bool列表:

var relayys = relaysStatus.Select(q => q =='1')。ToList();

更進一步,您可以創建用於將字符轉換為On / Off字符串的擴展方法:

public static class CharExtensions
{
    public static string ToOnOff(this char ch)
    {
        return (ch == '1') ? "On" : "Off";
    }
}

之后你可以使用它(非常干凈的代碼):

label1.Text = input[0].ToOnOff(); 
label2.Text = input[1].ToOnOff();

更新:我認為檢查“0”和“1”值都很好。 但這取決於你的輸入字符串。

public static class CharExtensions
{
    public static string ToOffOn(this char ch)
    {
        switch (ch)
        {
            case '0' : return "Off";
            case '1': return "On";
            default:
                return ch.ToString(); // Or rise exception
        }            
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM