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。我知道我不擅长英语。对不起!:)我不应该编码,因为我很累。--我更新了我的答案。