亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除一個字符,取其后的數字,刪除下一??個,依此類推

刪除一個字符,取其后的數字,刪除下一??個,依此類推

C#
慕無忌1623718 2022-10-23 16:13:19
我正在嘗試在 C# 中執行以下操作:我有一個包含以下數據的字符串(這是一個可用的最長字符串的示例,它取自數據庫,數據庫可以根據哪個 ID 在字符串中返回不同的數字我選擇): |1|,|2|,|3|,|4|,|5|,|6|,|7|,|8|,|9|,|10|,|11|,|12|,|13|,|14|,|15|,|16|,|17|,|18|,|19|,|20|,|21|,|22|,|23|,|24|,|25|,|26|,|27|,|28|,|29|,|30|,|31|,|32|,|33|,|34|,|35|,|36|,|37|,|38|,|39|,|40|,|41|,|42|,|43|,|44|,|45|,|46|,|47|,|48|,|49|,|50|,|51|,|52|,|53|這些是一年中的幾個星期,我想刪除每個“|” 和 "," 并將每個整數存儲在列表中的一個索引中,如下所示:`weekList[0] = 1weekList[1] = 2weekList[2] = 3weekList[3] = 4weekList[4] = 5...weekList[49] = 50weekList[50] = 51weekList[51] = 52weekList[52] = 53`如何實現?我已經閱讀了很多關于正則表達式的內容,但根本找不到這樣做的方法......
查看完整描述

4 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

1) 用逗號 ( ,) 分割字符串。


2)用字符空間()和管道(|)修剪分割字符串中的每個元素


3) 將每個元素解析為int


string str = "| 1 |,| 2 |,| 3 |,| 4 |,| 5 |,| 6 |,| 7 |,| 8 |,| 9 |,| 10 |,| 11 |,| 12 |,| 13 |,| 14 |,| 15 |,| 16 |,| 17 |,| 18 |,| 19 |,| 20 |,| 21 |,| 22 |,| 23 |,| 24 |,| 25 |,| 26 |,| 27 |,| 28 |,| 29 |,| 30 |,| 31 |,| 32 |,| 33 |,| 34 |,| 35 |,| 36 |,| 37 |,| 38 |,| 39 |,| 40 |,| 41 |,| 42 |,| 43 |,| 44 |,| 45 |,| 46 |,| 47 |,| 48 |,| 49 |,| 50 |,| 51 |,| 52 |,| 53 |";


int[] arr = str.Split(',')

               .Select(x => x.Trim(new char[] { ' ', '|' }))

               .Select(x => int.Parse(x))

               .ToArray();

現在這arr 是你的整數數組。

在線演示


選擇:

1) 刪除管道( |) 和空格( )。

2) 用逗號( ,) 分割。

3) 將每個拆分的字符串解析為 int。

int[] arr = str.Replace("|", "")
               .Replace(" ", "")
               .Split(',')
               .Select(x => int.Parse(x))
               .ToArray();

在線演示


查看完整回答
反對 回復 2022-10-23
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

這將為您工作:


        string str = "|1|,|2|,|3|,|4|,|5|,|6|,|7|,|8|,|9|,|10|,|11|,|12|,|13|,|14|,|15|,|16|,|17|,|18|,|19|,|20|,|21|,|22|,|23|,|24|,|25|,|26|,|27|,|28|,|29|,|30|,|31|,|32|,|33|,|34|,|35|,|36|,|37|,|38|,|39|,|40|,|41|,|42|,|43|,|44|,|45|,|46|,|47|,|48|,|49|,|50|,|51|,|52|,|53|";

        str = str.Replace("|", "");


        string[] subStrings = str.Split(',');

        int[] ints = new int[subStrings.Length];

        for (int i = 0; i < subStrings.Length; i++)

        {

            ints[i] = Convert.ToInt32(subStrings[i]);

        } 


查看完整回答
反對 回復 2022-10-23
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

我想出了您要求的正則表達式方法。首先,您必須使用正則表達式模式\d+查找所有數字,此模式匹配一個或多個數字。使用Regexstorm 測試來測試你的正則表達式。循環匹配并分配給您的數組。


這是我提出的 C# 交互式示例:


string input = "| 1 |,| 2 |,| 3 |,| 4 |,| 5 |,| 6 |,| 7 |,| 8 |,| 9 |,| 10 |,| 11 |,| 12 |,| 13 |,| 14 |,| 15 |,| 16 |,| 17 |,| 18 |,| 19 |,| 20 |,| 21 |,| 22 |,| 23 |,| 24 |,| 25 |,| 26 |,| 27 |,| 28 |,| 29 |,| 30 |,| 31 |,| 32 |,| 33 |,| 34 |,| 35 |,| 36 |,| 37 |,| 38 |,| 39 |,| 40 |,| 41 |,| 42 |,| 43 |,| 44 |,| 45 |,| 46 |,| 47 |,| 48 |,| 49 |,| 50 |,| 51 |,| 52 |,| 53 |";

MatchCollection matches = Regex.Matches(input, @"\d+");

int[] values = new int[matches.Count];

for (int i = 0; i < matches.Count; i++)

    values[i] = Convert.ToInt32(matches[i].Value);


查看完整回答
反對 回復 2022-10-23
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

private void button1_Click(obj sender,EventArgs e)

{

String str = "|1|,|2|,|3|,|4|...";

char[] ch =str.ToArray(),weekList=new char[ch.Length];

Int index=1;

for (int i=1;i < ch.Length ;i++)

{

if(index < ch.length-1)

{

weekList[i] = ch[index];

Index += 4;

}

}

MessageBox.Show(weekList[0]);//1

MessageBox.Show(weekList[9]);//10

}


查看完整回答
反對 回復 2022-10-23
  • 4 回答
  • 0 關注
  • 109 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號