C# 如何使用分隔符获取字符串的前五个字符
从这一点来看,这是一条完整的线C# 如何使用分隔符获取字符串的前五个字符,c#,C#,从这一点来看,这是一条完整的线 "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5" 我怎样才能做到像这样把数组放进去 我想将它们按行放入数组。您可以将字符串分组到数组列表中,每个数组包含源字符串中的5个元素,代码如下: private void Test() { var str = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
"1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5"
我怎样才能做到像这样把数组放进去
我想将它们按行放入数组。您可以将字符串分组到数组列表中,每个数组包含源字符串中的5个元素,代码如下:
private void Test()
{
var str = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var items = str.Split(';').Select(x => int.Parse(x)).ToList();
var result = ChunkBy(items, 5);
}
private List<T[]> ChunkBy<T>(List<T> list, int count)
{
var result = new List<T[]>();
var groupsCount = list.Count / count;
while (result.Count < groupsCount)
{
result.Add(list.Skip(count * result.Count).Take(count).ToArray());
}
return result;
}
private void Test()
{
var str=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var items=str.Split(“;”).Select(x=>int.Parse(x)).ToList();
var结果=ChunkBy(项目5);
}
私有列表ChunkBy(列表、整数计数)
{
var result=新列表();
var groupscont=list.Count/Count;
while(result.Count
您可以使用以下代码将字符串分组到数组列表中,每个数组包含源字符串中的5个元素:
private void Test()
{
var str = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var items = str.Split(';').Select(x => int.Parse(x)).ToList();
var result = ChunkBy(items, 5);
}
private List<T[]> ChunkBy<T>(List<T> list, int count)
{
var result = new List<T[]>();
var groupsCount = list.Count / count;
while (result.Count < groupsCount)
{
result.Add(list.Skip(count * result.Count).Take(count).ToArray());
}
return result;
}
private void Test()
{
var str=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var items=str.Split(“;”).Select(x=>int.Parse(x)).ToList();
var结果=ChunkBy(项目5);
}
私有列表ChunkBy(列表、整数计数)
{
var result=新列表();
var groupscont=list.Count/Count;
while(result.Count
带有二维数组:
var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var splittedSubject = subject.Split(new[]{';'});
int columns = 3;
int rows = splittedSubject.Length / columns + 1;
var twoDimArray = new int[columns,rows];
var index = 0;
foreach(var c in splittedSubject)
{
twoDimArray[index % columns, index / columns] = int.Parse(splittedSubject[index]);
index++;
}
或者,作为列表:
int columns = 3;
List<int>[] list = new List<int>[] { new List<int>(), new List<int>(),new List<int>()};
var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var splitted = subject.Split(new[]{';'});
var index = 0;
foreach(var c in splitted)
{
list[index % columns].Add(int.Parse(splitted[index]));
index++;
}
int列=3;
List[]List=新列表[]{new List(),new List(),new List()};
var subject=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var splitted=subject.Split(新[]{';'});
var指数=0;
foreach(拆分中的变量c)
{
列出[索引%列]。添加(int.Parse(拆分的[索引]);
索引++;
}
带有二维数组:
var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var splittedSubject = subject.Split(new[]{';'});
int columns = 3;
int rows = splittedSubject.Length / columns + 1;
var twoDimArray = new int[columns,rows];
var index = 0;
foreach(var c in splittedSubject)
{
twoDimArray[index % columns, index / columns] = int.Parse(splittedSubject[index]);
index++;
}
或者,作为列表:
int columns = 3;
List<int>[] list = new List<int>[] { new List<int>(), new List<int>(),new List<int>()};
var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var splitted = subject.Split(new[]{';'});
var index = 0;
foreach(var c in splitted)
{
list[index % columns].Add(int.Parse(splitted[index]));
index++;
}
int列=3;
List[]List=新列表[]{new List(),new List(),new List()};
var subject=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var splitted=subject.Split(新[]{';'});
var指数=0;
foreach(拆分中的变量c)
{
列出[索引%列]。添加(int.Parse(拆分的[索引]);
索引++;
}
我假设您的意思是将“第一个五个字符”放在第一列中,接下来的五个字符放在第二列中,依此类推
首先将输入字符串转换为包含数字(作为字符串)的数组
然后将其转换为整数的二维数组:
public static int[,] ToMatrix(string input)
{
const int Rows = 5;
string[] numbers = input.Split(';');
int columns = (numbers.Length + Rows - 1) / Rows;
int[,] matrix = new int[Rows, columns];
int i = 0;
for (int col = 0; col < columns; col++) {
for (int row = 0; row < Rows; row++, i++) {
// In case numbers.Length is not divisible by 5.
if (i >= numbers.Length) return matrix;
matrix[row, col] = Int32.Parse(numbers[i]);
}
}
return matrix;
}
以及
if(i>=numbers.Length)返回矩阵代码>可能会被删除。我想你的意思是将“前五个字符”放在第一列,下五个字符放在第二列,依此类推
首先将输入字符串转换为包含数字(作为字符串)的数组
然后将其转换为整数的二维数组:
public static int[,] ToMatrix(string input)
{
const int Rows = 5;
string[] numbers = input.Split(';');
int columns = (numbers.Length + Rows - 1) / Rows;
int[,] matrix = new int[Rows, columns];
int i = 0;
for (int col = 0; col < columns; col++) {
for (int row = 0; row < Rows; row++, i++) {
// In case numbers.Length is not divisible by 5.
if (i >= numbers.Length) return matrix;
matrix[row, col] = Int32.Parse(numbers[i]);
}
}
return matrix;
}
以及if(i>=numbers.Length)返回矩阵代码>可以被删除。您可以将结果作为字符串,其预期结果如您在行中所述
string input=“1;2;3;4;5;2;2;2;2;3;3;3;3;4;4;4;5;5;5;5;5;5”;
输入=输入+“;”;
int columnNumber=5;
列表结果=新列表();
对于(int columnIndex=0;columnIndex
您可以以结果字符串集合的形式对工作进行写信,如代码>或,
。此外,我还添加了一些断言来检查结果(您可以将其删除)您可以将结果作为字符串,并具有您在行中提到的预期结果
string input=“1;2;3;4;5;2;2;2;2;3;3;3;3;4;4;4;5;5;5;5;5;5”;
输入=输入+“;”;
int columnNumber=5;
列表结果=新列表();
对于(int columnIndex=0;columnIndex
您可以以结果字符串集合的形式对工作进行写信,如代码>或,
。此外,我还添加了一些断言来检查结果(您可以删除它)您想要的输出是二维数组吗?第一个条目是一个包含值1,2,3,4,5
的数组,第二个条目是2,2,2,2,2
?,您想要的输出是二维数组吗?第一个条目是一个数组,包含值1,2,3,4,5
,第二个2,2,2,2,2
?,以及