Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 数组中的4位数字作为字符串_Java - Fatal编程技术网

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

Java 数组中的4位数字作为字符串,java,Java,我需要具有以下属性的字符串数组: 4位数字 无重复数字(“1214”无效) 没有0的 有没有比手动键入更简单的方法?比如: String[] s = {"1234","1235",1236",1237",1238",1239","1243","1245"}; 对不起我的英语 ****编辑**** 刚刚看到它是用Java编写的。因此,如果循环中没有重复的数字,请使用以下函数:String.valueOf(number)将整数转换为字符串 不知道你在用什么语言,但我假设没有重复,没有回复。

我需要具有以下属性的字符串数组:

  • 4位数字
  • 无重复数字(“1214”无效)
  • 没有0的
有没有比手动键入更简单的方法?比如:

String[] s = {"1234","1235",1236",1237",1238",1239","1243","1245"};
对不起我的英语

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


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

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

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;
}
arraylistrawnumbers=新的ArrayList(Arrays.asList(1,2,3,4,5,6,7,8,9));
公共字符串CreateRandomNumberString()
{
字符串结果=”;
ArrayList编号=新的ArrayList();
数字。addAll(原始数字);
对于(int i=0;i<4;i++)
{
int index=(int)(Math.random()*(numbers.size()+1));
result+=numbers.get(index.toString();
删除(索引);
}
返回结果;
}

以下代码将根据您的规范生成一个数组

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));

}


}
公共类测试{
公共静态void main(字符串[]args){
列表结果=新建ArrayList();
Set=newhashset();

对于(int i=1234;i)你用什么语言写的?你说的“没有回复”是什么意思?我的意思不是这样的:1513每个数字只出现一次你需要所有这些数字吗?你能有“1234”和“1243”吗同时?@Atinator98您想要的是生成置换,请参阅1234开始时的其他问题,这样您就不必检查它是否有4个数字。非常感谢您的帮助!但我应该如何准确地做到这一点呢?我想使用一些for cycle,对吗?埃文您是正确的!抱歉,我从0开始时匆忙完成了这项操作,并使其效率低下@Atinator98使用for循环从1234(可能没有重复的最小数字)运行到9876(没有重复的最大数字)!这不好:(它生成例如4142 wich不好。有两个4。我知道我不擅长英语。对不起!:)我不应该编码,因为我很累。--我更新了我的答案。