数组中的4位数字作为字符串

时间:2014-12-30 22:51:54

标签: java

我需要一个具有以下属性的String数组:

  • 4位数字
  • 没有重复数字(" 1214"无效)
  • No 0' s

除了手动输入外,还有更简单的方法吗?像:

String[] s = {"1234","1235",1236",1237",1238",1239","1243","1245"};

抱歉我的英文!

3 个答案:

答案 0 :(得分:1)

**** ****编辑 刚刚看到它是在Java中。因此,使用此函数:String.valueOf(number)将整数转换为字符串,如果循环中没有任何数字重复。


不确定你在做什么语言,但我假设没有重复但没有回复。 所以你可以做的是有一个从0到9999的循环,然后检查所有数字,同时检查每个数字是否有重复,如果这样丢弃数字(不要将它存储到数组中)。 您可以在其函数中将整数转换为多种语言的字符串,这样您就可以将其存储到数组中。 祝好运。 希望这有所帮助(从我的头脑中最快的解决方案......可能会有更高效的解决方案)

答案 1 :(得分:1)

以下代码将生成符合您规范的数组。

public class Test {

public static void main(String[] args) {

    List<String> result = new ArrayList<>();

    Set<Character> set = new HashSet<>();
    for (int i = 1234; i <= 9876; i++) {
        set.clear();

        String iAsString = Integer.toString(i);
        char[] chars = iAsString.toCharArray();

        boolean valid = true;
        for (char c : chars) {
            if (c == '0' || !set.add(c)) {
                valid = false;
                break;
            }
        }

        if (valid) {
            result.add(iAsString);
        }
    }


    String[] yourStringArray = result.toArray(new String[result.size()]);

    System.out.println(Arrays.toString(yourStringArray));

}


}

答案 2 :(得分:0)

尝试使用此方法为您的结构创建随机数:

ArrayList<Integer> rawNumbers = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6,7,8,9));
public String createRandomNumberSring()
{
    String result = "";
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.addAll(rawNumbers);
    for(int i = 0; i < 4; i++)
    {
        int index = (int)(Math.random() * (numbers.size() + 1));
        result += numbers.get(index).toString();
        numbers.remove(index);
    }
    return result;
}