将逗号分隔的int字符串转换为List C ++ / cli

时间:2018-01-31 04:10:54

标签: string list c++-cli

我的起点是一个用逗号分隔的字符串,包含可变数量的整数,例如:

System::String^ tags=gcnew String("1,3,5,9");

现在我希望 - 尽可能少的步骤 - 将此字符串转换为整数列表:

List<System::Int32>^  taglist= gcnew List<System::Int32>();//to contain 1,3,5,9

此外,在操作列表后,我需要在一天结束时将其导出回字符串。我看到了被问到C#here的问题 但对于C ++而言则略有不同。

我尝试使用字符串直接初始化,但失败了。我也尝试过.Split但是会产生字符串。我也不想做任何复杂的streamreader的东西。 链接中的答案必须具有C ++ / cli的等效内容。

1 个答案:

答案 0 :(得分:1)

正如在评论中提到的,您可以使用Split将字符串转换为字符串数组,然后您可以使用Array::ConvertAll转换为int值数组,并在操作值之后使用can ise String::Join可以将一个int数组转换为单个字符串。

这是一个代码示例:

String^ tags = gcnew String("1,3,5,9");
String^ separator = ",";
array<String^>^ tagsArray = tags->Split(separator->ToCharArray());

array<int>^ tagsIntArray = Array::ConvertAll<String^, int>(tagsArray,
    gcnew Converter<String^, int>(Int32::Parse));

// Do your stuff

String^ resultString = String::Join<int>(separator, tagsIntArray);