![](/img/trans.png)
[英]Is there a builtin method in Java to turn string into an array of integers?
[英]String method with array of integers
請幫忙寫代碼。 我嘗試添加子字符串等以刪除結尾逗號。 我怎樣才能做到這一點? 示例: {1,2,3}
到字符串現在是"1,2,3,"
public static String arrayToString(int[] numbers)
{
String stringify = "";
for (int index = 0; index < numbers.length; index++)
{
stringify = numbers[index] + ", ";
}
return stringify;
}
刪除整個方法。 使用Arrays.toString(int[])
代替。 為什么要像這樣重寫核心功能?
return Arrays.stream(numbers)
.boxed()
.map(String::valueOf)
.collect(Collectors.joining(", "));
StringBuilder out = new StringBuilder();
for (int i = 0; i < numbers.length; i++) {
if (i != 0) out.append(", ");
out.append(numbers[i]);
}
return out.toString();
在循環中添加字符串是不好的形式(它會浪費大量內存),所以不要這樣做。 上述策略按優先順序排列,最高選項領先於其他選項數英里。
您可以將方法修改為以下方法:
public static String arrayToString(int[] numbers)
{
String stringify = "";
for (int index = 0; index < numbers.length; index++)
{
stringify = numbers[index];
if (index < numbers.length - 1) {
stringify += ", ";
}
}
return stringify;
}
我更喜歡將其視為在除第一個數字之外的每個數字之前都有一個分隔符。 或者,同樣地,每個數字之前都有一個分隔符,但第一個分隔符是空的。
public static String arrayToString(int[] numbers)
{
String separator = "";
String stringify = "";
for (int index = 0; index < numbers.length; index++)
{
stringify += separator + numbers[index];
separator = ", "
}
return stringify;
}
請注意,我將stringify
的分配固定為+=
而不是=
,否則您只會得到最后一個數字。
在實踐中,我可能會使用 StringBuilder,但我想讓它盡可能接近原始版本。 對於 StringBuilder,可以使用相同的分隔符技術。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.