Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数字转换为字符串集合_Java - Fatal编程技术网

Java 如何将数字转换为字符串集合

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

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=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"]