2011-07-08 89 views
0

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

  • 如果数字是234,我想结果是含有List<String>2,3,4(3片)
  • 如果数字是8763,我想的结果是List<String>含有8,7,6,3(4种元素)

是否公地数学已经有这样的功能?

+3

是这个家庭作业? –

回答

6
  1. 转换为字符串(123变得"123")的数目。使用Integer.toString
  2. 将字符串转换为char数组("123"变为{'1', '2', '3'})。使用String.toCharArray
  3. 构造一个新的空Vector<String>(或其他List类型)。
  4. 将字符数组中的每个字符转换为一个字符串并将其推送到矢量上({'1', '2', '3'}变成一个带有"1","2""3"的矢量)。使用for循环,Character.toStringList.add

编辑:您不能使用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步。其次,它是否必须是列表或者它可以只是一个数组?这将消除步骤4

2

您可以使用内置的java.util.Arrays.asList:使用String.valueOf(num)

  • 拆分字符串由

    1. 转换numString

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

      一步此步骤非词边界,在这种情况下,除开始和结束之外的每个字母边界,使用.split("\\B")(这将返回String[]

    2. 转换String[]List<String>使用Arrays.asList(T...)
  • +0

    它将包含4个元素:“{”,“2”,“3”,“4”} –

    +1

    @Eng:fixed(例如http://ideone.com/upbQ2) –

    0
    Arrays.asList(String.valueOf(number).toCharArray()) 
    
    +1

    这不会返回List 而不是列表? –

    +0

    Arrays.asList(char [])将返回一个列表 ..所以不认为这会工作。 – Kal

    +0

    是的,我试过这个。 'Arrays.asList'是一个非常疯狂的函数。 [文档](http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList%28T...%29)并没有真正解释它,但似乎就像当且仅当你给它一个对象数组(不是一个基元数组)时,它会将该数组变成一个List。否则,它将采用任意数量的参数并将它们全部放入列表中。所以这适用于String [],不适用于char []。 – mgiuca

    0

    试试这个:

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

    它将创建的字符串列表:

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

    这似乎是功课。

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

    相关问题