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

时间:2011-07-08 04:23:09

标签: java

e.g:

  • 如果数字是234,我希望结果为List<String>包含2,3,4(3个元素)
  • 如果数字是8763,我希望结果为List<String>包含8,7,6,3(4个元素)

commons-math是否已经有这样的功能?

5 个答案:

答案 0 :(得分:6)

  1. 将数字转换为字符串(123变为"123")。使用Integer.toString
  2. 将字符串转换为char数组("123"变为{'1', '2', '3'})。使用String.toCharArray
  3. 构造一个新的空Vector<String>(或其他一些List类型)。
  4. 将char数组中的每个char转换为String并将其推送到Vector({'1', '2', '3'}成为带有"1""2""3"的Vector。使用for循环,Character.toStringList.add
  5. 编辑:您无法使用Vector构造函数;必须手动完成。

    int num = 123;
    char[] chars = Integer.toString(num).toCharArray();
    List<String> parts = new Vector<String>();
    for (char c : chars)
    {
        parts.add(Character.toString(c));
    }
    

    没有一种更简单的方法可以做到这一点,因为它确实不是一个非常明显或常见的事情。首先,为什么需要一个字符串列表?你能有一个人物的清单吗?这将消除第3步。其次,它必须是 List 还是它只是一个数组?这将取消第4步。

答案 1 :(得分:2)

您可以使用内置的java.util.Arrays.asList:

int num = 234;
List<String> parts = Arrays.asList(String.valueOf(num).split("\\B"));

一步一步:

  1. 使用num
  2. String转换为String.valueOf(num)
  3. 使用.split("\\B")(这会返回String[]
  4. ,按非字边界拆分字符串,在本例中为除开始和结束之外的每个字母边界。
  5. 使用String[]
  6. List<String>转换为Arrays.asList(T...)

答案 2 :(得分:0)

Arrays.asList( String.valueOf(number).toCharArray() )

答案 3 :(得分:0)

试试这个:

Arrays.asList(String.valueOf(1234).split("(?!^)"))

它将创建字符串列表:

["1", "2", "3", "4"]

答案 4 :(得分:0)

这似乎是功课。

考虑使用%/来获取每个数字,而不是将整个数字转换为字符串