簡體   English   中英

如何使用Split在C#中獲取字符串中的字符和運算符

[英]How to get the character and operator in a string in C# using Split

我有必須在其中基於公式對文本框執行計算的要求。 我想知道如何分別獲取字段名稱和運算符,以便可以在公式文本框中綁定它。 示例:{FieldName1} + {FieldName2} + {Fieldname3}是公式,我想要包含大括號的數據,因為它們將分別用作字段名稱和+符號。 我不知道該怎么辦。 這是我的代碼-

    DataTable dt_main = GetTable();
    DataTable dt_AutocalculatedColumns = GetCalculatedColumn();
    string AutoGeneratedColumnName = string.Empty;
    string Formula = string.Empty;
    string FLD1 = string.Empty;
    string FLD2 = string.Empty;
    string FLD3 = string.Empty;
    if (dt_AutocalculatedColumns.Rows.Count > 0)
    {
        foreach (DataRow row_field in dt_AutocalculatedColumns.Rows) 
        {
            AutoGeneratedColumnName = row_field["FieldName"].ToString();
            Formula = row_field["AutoCalculatedFormula"].ToString();
            string[] words = Formula.Split(' ');
            foreach (string Eachword in words)
            {
                // what to do here i am not getting
            }
        }
    }
    protected DataTable GetCalculatedColumn()
    {
        SqlConnection con= newSqlConnection(ConfigurationManager.ConnectionStrings["ExcelLikeConnnectionString"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("My Select Query", con);
        cmd.CommandType = CommandType.Text;
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        con.Close();
        return dt;
    }

任何幫助,將不勝感激。 提前致謝

如果僅使用+運算符,則應在其上拆分而不是在' '上拆分。 為確保您沒有帶空格的字段名稱,請使用trim。

string[] words = Formula.Split('+');
for (int i = 0; i < words.Length; i++)
{
    words[i] = words[i].Trim();
}

當然,在這種情況下,字段名稱中不能包含+

您也可以使用LINQ:

string formula = "{FieldName1} + {FieldName2}+{Fieldname3}";
string[] words = formula.Split('+')
    .Select(w => w.Trim(new char[] {' ', '{', '}'})).ToArray();

這將拆分字符串formula並修剪每個條目,以便您只剩下字段名稱。 結果輸出將是一個包含FieldName1FieldName2FieldName3的3元素數組。

暫無
暫無

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

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