已知string a="1,2,3,4,...56"
要求得到一个string[] b
其中b[0]="1,2,3,...10";
b[1]="11,12,13,...20" ;
...
b[4]="41,42,...50";
b[5]="51,52,...56";
//总之将a里面以逗号分开的值10个10个的分开,最后组成一个sting[]private string[] getAnswer(string a)
{
...
retrun b;
}
请教这个算法该怎么写,多谢!!!!!!!!!!!
要求得到一个string[] b
其中b[0]="1,2,3,...10";
b[1]="11,12,13,...20" ;
...
b[4]="41,42,...50";
b[5]="51,52,...56";
//总之将a里面以逗号分开的值10个10个的分开,最后组成一个sting[]private string[] getAnswer(string a)
{
...
retrun b;
}
请教这个算法该怎么写,多谢!!!!!!!!!!!
string[] b;
for(int i=0; i <list.Length; i++)
{
if((list[i]%10!=0 || i==list.Length-1)
{
b[i/10]+= list[i]+",";
}
else
{
b[i/10]+= list[i];
}}
//
private string[] getAnswer(string a)
{
string[] c=a.split(new char[]{,});
int l=c.length;
int ll=l/10;
string[] b;
for (int i=0;i<ll;i++){
for (int j=0;j<10;j++){
b[i]+=c[i*10+j];
}
}
return b;
}
{
string[] arr = a.Split( ',');
int group = (arr.Length + 9) / 10;
string[] result = new string[group];
for (int i = 0; i < group; i++)
{
string s = "";
for (int j = 0; j < 10; j++)
{
int index = i * 10 + j;
if (index >= arr.Length)
break;
s += arr[index] + ",";
}
s = s.TrimEnd(',');
result[i] = s;
}
return result;
}
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,54,55,56
----
string a = string.Empty;
for (int i = 1; i <= 56; i++)
{
a += "," + i.ToString();
}
a = a.Remove(0, 1); // 删除第一个","
int count = 0;
string t = string.Empty;
foreach (string s in a.Split(','))
{
count++;
if (count % 10 == 0)
{
t += "," + s;
t = t.Remove(0, 1); // 删除第一个","
Console.WriteLine(t);
t = string.Empty;
}
else t += "," + s;
}
if (t != string.Empty)
{
t = t.Remove(0, 1); // 删除第一个","
Console.WriteLine(t);
}
//
private string[] getAnswer(string a)
{
string[] c=a.split(new char[]{','});
int l=c.length;
int ll=l/10;
string[] b;
for (int i=0;i<ll;i++){
for (int j=0;j<10;j++){
b[i]+=c[i*10+j]+",";
}
b[i]=b[i].substring(0,b[i].length-1);
}
return b;
}
b[1]={11,12,13,14,15,16,17,18,19,20}
b[2]={21,22,23,24,25,26,27,28,29,30}
b[3]={31,32,33,34,35,36,37,38,39,40}
b[4]={41,42,43,44,45,46,47,48,49,50}
b[5]={51,52,53,54,55,56}
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;namespace ConsoleApplication1
{
public class Class1
{
private int numsize = 10;
private int number = 0;
public Class1() { }
public Class1(int numsize)
{
this.numsize = numsize;
}
public int Numsize
{
get { return numsize; }
set { numsize = value; }
}
public string[] GetAnswer(string inputStr)
{
string[] result = new string[GetNeedStringArrayNumber(GetNeedStringArrayELement(inputStr))]; //存放字符串数组
int index = 0; //当前字符串数组下标
int cursor = 0; //数字统计
for (int i = 0; i < inputStr.Length; i++)
{
if (!isComma(inputStr[i]))
SetNum(inputStr[i]);
else
{
++cursor;
if (0 != cursor % numsize)
{
result[index] += number;
result[index] += ",";
}
else
{
result[index] += number;
++index;
}
number = 0;
}
}
result[index] += number;
return result;
}
/// <summary>
/// 获得真正字符串里存在的数字
/// </summary>
/// <param name="srcStr"></param>
/// <returns></returns>
private int GetNeedStringArrayELement(string srcStr)
{
int count = 0;
for (int i = 0; i < srcStr.Length; i++)
{
if (isComma(srcStr[i]))
++count;
}
return ++count;
}
/// <summary>
/// 获得需要字符串数组的数量
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
private int GetNeedStringArrayNumber(int count)
{
return count % numsize != 0 ? (count / numsize + 1) : (count / numsize);
}
/// <summary>
/// 获得将字符串转换完毕后的数字
/// </summary>
/// <param name="c"></param>
private void SetNum(int c)
{
number = number * 10 + ConvertToInt(c);
}
/// <summary>
/// 转换字符为数字
/// </summary>
/// <param name="c"></param>
/// <returns></returns>
private int ConvertToInt(int c)
{
if (48 <= c && c <= 57)
return c - 48;
throw new Exception();
}
/// <summary>
/// 判断是否是逗号
/// </summary>
/// <param name="c"></param>
/// <returns></returns>
private bool isComma(char c)
{
return c == ',' ? true : false;
}
}
}