Java 如何将数字转换为字符串集合
e、 g:Java 如何将数字转换为字符串集合,java,Java,e、 g: 如果数字是234,我希望结果是包含2,3,4(3个元素)的List 如果数字是8763,我希望结果是包含8,7,6,3(4个元素)的List commons math已经有这样的功能了吗?您可以使用内置的java.util.Arrays.asList: int num = 234; List<String> parts = Arrays.asList(String.valueOf(num).split("\\B")); int num=234; List parts
- 如果数字是234,我希望结果是包含
(3个元素)的2,3,4
List
- 如果数字是8763,我希望结果是包含
(4个元素)的8,7,6,3
List
commons math已经有这样的功能了吗?您可以使用内置的java.util.Arrays.asList:
int num = 234;
List<String> parts = Arrays.asList(String.valueOf(num).split("\\B"));
int num=234;
List parts=Arrays.asList(String.valueOf(num.split)(\\B”);
循序渐进:
String.valueOf(num)
.split(\\B“)
(这将返回字符串[]
),按非单词边界拆分字符串,在本例中,除开头和结尾之外的每个字母边界数组将字符串[]
转换为列表
123
变为“123”
)。使用Integer.toString
“123”
变为{'1','2','3'}
)。使用String.tocharray
向量
(或其他一些列表类型){1',2',3'}
成为带有“1”
,“2”
和“3”
的向量)。使用for循环、Character.toString
和列表。添加
int num = 123;
char[] chars = Integer.toString(num).toCharArray();
List<String> parts = new Vector<String>();
for (char c : chars)
{
parts.add(Character.toString(c));
}
int num=123;
char[]chars=Integer.toString(num.tocharray();
列表部分=新向量();
for(char c:chars)
{
部分。添加(字符。toString(c));
}
没有一种更简单的方法可以做到这一点,因为这并不是一件非常明显或常见的事情。首先,为什么需要字符串列表?你能给我一个角色列表吗?这将消除步骤3。其次,它必须是列表还是数组?这将消除第4步。尝试以下方法:
Arrays.asList(String.valueOf(1234).split("(?!^)"))
它将创建字符串列表:
["1", "2", "3", "4"]
这好像是家庭作业
考虑使用
%
和/
获取每个数字,而不是将整个数字转换为字符串这不会返回列表而不是列表吗?数组。asList(char[])将返回列表。。所以我不认为这会奏效。是的,我试过了<代码>数组。asList是一个非常疯狂的函数。并没有真正解释它,但似乎只有当你给它一个对象数组(不是一个原语数组)时,它才会把这个数组变成一个列表。否则,它将接受任意数量的参数并将它们全部放入一个列表中。所以这对字符串[]有效,而不是字符[]。@mgiuca:它与varargs有关--foo(T[])
和foo(T…)
的签名实际上是一样的,除此之外,参数化类型T
必须是非原语的,因此编译器假定您指的是T
的原语数组类型T[]
。啊,干杯。在过去的20分钟里,我一直在试图弄清楚这到底是怎么回事(就类型而言)。这是有道理的。我不认为t[]和t。。。都是一样的,因为。。。允许您传递一个数组或多个参数,而T[]只允许您传递一个数组。因此,如果您试图传递一个需要var args的数组,则更像是发生了“自动splat”。它将包括4个元素:{”、“2”、“3”、“4”}
["1", "2", "3", "4"]