我是c#unity的新人。我要在firebase中保存我的阵列数组,因为我要创建一个像
这样的int数组int[] positions = new int[] {2, 4, 3};
它的工作正常,但我不知道如何将其转换为字符串数组,如"[2, 4, 3]"
以保存在firebase中。
我在谷歌搜索过并试过
string stringPositions = string.Join("", positions);
但它完全将我的数组转换为234
之类的字符串。还有如何将此字符串再次编码为数组。如果有任何其他方法可以让我知道。谢谢!
答案 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("]");
现在您可以根据需要使用数组。