c#中如何使用split方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中如何使用split方法相关的知识,希望对你有一定的参考价值。

在问题框中输入一串数字(10个),数字间用逗号隔开,用split方法把各个数字分离出来,并保存到数组中,然后对数字进行排序。带上注释。

.Net 3.5里面用LINQ直接摆平:

string value="1,2,3,4,5";
int[] ids= value.split(',') //用逗号进行分割
.Select(s=>int.Parse(s)) //遍历每个字符串并转换为数字
.OrderBy(s=>s) //排序
.ToArray(); //转换为数组。

如果不会LINQ或不是.Net 3.5,可以用传统方法做:
string[] list=value.split(',');//分割
int[] id=new int[list.Length];//声明目标数组
for(int i=0;i<list.Length;i++)id[i]=int.Parse(list[i]);//转换文本到数组中
Array.Sort(id); //直接排序

我就是比较惊奇上面为啥有同学直接写了一个冒泡排序…….Net内部的排序是快速排序,比冒泡排序快多了。
上面代码是手打的,没经过编译,不保证完全正确,大概演示一下。
参考技术A 两句话搞定
List<int> noList = this.textBox1.Text //取文本框的输入文字
.Split(new char[]',', StringSplitOptions.RemoveEmptyEntries) //按‘,’隔开字符串成为string[]数组,忽略掉空字符串
.ToList() //string[]数组转换成 List<string>
.ConvertAll<int>(item => int.Parse(item.Trim())); //List<string>转换成 List<int>

noList.Sort(); //排序,默认为升序
参考技术B using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2

public class Program

static void Main(string[] args)


string str = "1,7,0,5,3,6,4,3,8";//您的字符串

string[] a = str.Split(',');//将字符串保存在数组中

int[] b = new int[a.Length];

for (int count = 0; count < a.Length; count++)//将字符串数组转换为整数数组


b[count] = Convert.ToInt32(a[count]);


BubbleSort(b);//排序并显示


public static void BubbleSort(int[] array) //进行冒泡排序



int length = array.Length;

for (int i = 0; i <= length - 1; i++)



for (int j = length - 1; j > i; j--)

if (array[j] < array[j - 1] )



int temp = array[j];

array[j] = array[j - 1];

array[j - 1] = temp;




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

Console.Write(array [i]+",");





测试过的没问题!希望对你有用!谢谢!
参考技术C int[]array = Question.Text.Split(','); //将数字放入array数组
public void BubbleSort(int[] array) //进行冒泡排序

int length = array.Length;
for (int i = 0; i <= length - 1; i++)

for (int j = length - 1; j > i; j--)

if (array[j] < array[j - 1] )

int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;



本回答被提问者采纳
参考技术D string s = "2,1,3,4,9,6,7,8,5,0"; //需要分割的字符串
string[] arr = s.Split(','); //分割,用'号表示char值
Array.Sort(arr); //排序,默认按顺序排序
// Array.Reverse(arr); //如果需要倒序则开启这句即可
//输出
foreach (string a in arr)
Console.WriteLine(a);

如何在 oracle 中执行 c# string.split()

【中文标题】如何在 oracle 中执行 c# string.split()【英文标题】:How to do the c# string.split() in oracle 【发布时间】:2020-03-20 19:22:17 【问题描述】:

如果存在,如何从字符串的乞求中删除某些单词,如DUMPRJ,然后根据字符_ 拆分字符串并获取第二部分。

例如,如果我们采取 DUM_EI_AO_L_5864_Al Meena Tower 我需要以AOEI_AE_L_5864_Al radha Tower 作为AE 获得答案

【问题讨论】:

这些都是我已经检查过的并且非常复杂。我需要一个满足我在问题中提到的两个条件的简单答案 您想要查询还是 C# 代码?您是否尝试过在 oracle 查询上执行此操作?当您 1. 展示努力和 2. 通过查询示例展示您想要的内容时,这个问题肯定会得到回答。一旦您提出查询,您的问题可能归结为“LinQ 中的这个 oracle 函数是什么?”。 【参考方案1】:

替换要删除的前缀,然后找到第一个和第二个下划线的索引,然后找到这两个分隔符之间的子字符串:

Oracle 设置

CREATE TABLE your_table ( value ) AS
SELECT 'DUM_EI_AO_L_5864_Al Meena Tower' FROM DUAL UNION ALL
SELECT 'EI_AE_L_5864_Al radha Tower' FROM DUAL

查询

SELECT value,
       SUBSTR( replaced_value, first_separator + 1, second_separator - first_separator - 1 )
         AS second_term
FROM   (
  SELECT value,
         replaced_value,
         INSTR( replaced_value, '_', 1, 1 ) AS first_separator,
         INSTR( replaced_value, '_', 1, 2 ) AS second_separator
  FROM   (
    SELECT value,
           REPLACE(
             REPLACE(
               value,
               'PRJ_'
             ),
             'DUM_'
           ) AS replaced_value
    FROM   your_table
  )
)

输出

价值 |第二期 :-------------------------------- | :---------- DUM_EI_AO_L_5864_Al Meena 塔 | AO EI_AE_L_5864_Al radha 塔 | AE

查询 2

你也可以使用正则表达式:

SELECT value,
       REGEXP_SUBSTR( value, '(DUM_|PRJ_)?.*?_(.*?)_', 1, 1, NULL, 2 ) AS second_term
FROM   your_table

输出

价值 |第二期 :-------------------------------- | :---------- DUM_EI_AO_L_5864_Al Meena 塔 | AO EI_AE_L_5864_Al radha 塔 | AE

db小提琴here

【讨论】:

以上是关于c#中如何使用split方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 oracle 中执行 c# string.split()

C#实现字符串按多个字符采用Split方法分割

C# Regex.Split,如何将字符串拆分为用括号括起来而不是用括号括起来?

c#使用Split分割换行符

设置对象数组中每个项目的属性(C#,Regex.Split())

c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?