如何将我的int数组转换为c#中的字符串数组?

时间:2017-10-26 08:14:39

标签: c# unity3d

我是c#unity的新人。我要在firebase中保存我的阵列数组,因为我要创建一个像

这样的int数组
int[] positions = new int[] {2, 4, 3};

它的工作正常,但我不知道如何将其转换为字符串数组,如"[2, 4, 3]"以保存在firebase中。

我在谷歌搜索过并试过

string stringPositions = string.Join("", positions);

但它完全将我的数组转换为234之类的字符串。还有如何将此字符串再次编码为数组。如果有任何其他方法可以让我知道。谢谢!

5 个答案:

答案 0 :(得分:5)

首先,您的问题是错误的,您希望将int数组转换为字符串。

使用此:

int[] positions = new int[] {2, 4, 3};
string result = "[" + string.Join(",", positions) + "]";

或者这个:

int[] positions = new int[] {2, 4, 3};
StringBuilder stb = new StringBuilder();
stb.Append("[");
stb.Append(string.Join(",", positions));
stb.Append("]");
string result = stb.ToString();

或者如果你有C#6或更高版本:

int[] positions = new int[] {2, 4, 3};
string result = $"[{string.Join(",", positions)}]";

此外,如果您想转换回int数组,例如您可以编写转换器:

private int[] ConvertToIntArray(string myCustomString) //myCustomString is in "[1,2,3]" format
{
    return myCustomString.Substring(1, myCustomString.Length - 2)
                         .Split(',')
                         .Select(s => int.Parse(s))
                         .ToArray();
}

答案 1 :(得分:1)

"[1,2,3,4]"

int数组的json格式。不是string数组。

您可以使用任何JSON解析器来执行此操作。

我建议使用构建的JsonUtility Unity API。 请按照本指南了解其工作原理:

Serialize and Deserialize Json and Json Array in Unity

希望这有帮助。

答案 2 :(得分:1)

你已经要求一个字符串数组,但你的例子实际上只是一个字符串,看起来好像你在代码中声明你的int数组。

对于实际的字符串数组,您可以执行其他人所说的内容并使用linq

string[] stringArray = positions.select(p => p.ToString());

这将为您提供一个新数组,其项目数据类型为字符串。

如果您想要一个看起来像您要求的实际文本字符串

string stringRepresentation = $"[{string.Join(", ", positions)}]";

或使用旧式字符串格式:

string stringRepresentation = string.Format("[{0}]", string.Join(", ", positions);

但是要清楚。这不是深入的东西。一些快速的谷歌搜索和理解如何使用string.Join方法会给你这个答案。

所以我将给你留下一个指向字符串上trim方法的指针,以及split方法,它应该为你提供重新创建int数组所需的一切

答案 3 :(得分:1)

因为你是新的更好用循环

int[] positions = new int[] {2, 4, 3};
string[] s = new string[positions.Length];
for (int x=0; x<positions.Length; i++)
s[x] = positions[x].ToString();

答案 4 :(得分:1)

你必须手动完成。

String arrStr = "[";
for ( int i  = 0; i < arr.length() - 1; i++) {
     arrStr.join(arr[i]);
     arrStr.join(",");
 }
 arrStr.join(arr[arr.length() - 1]);
 arrStr.join("]");

现在您可以根据需要使用数组。