我需要一个具有以下属性的字符串数组:
有比手工键入更简单的方法吗?比如:
String[] s = {"1234","1235",1236",1237",1238",1239","1243","1245"};对不起我的英语!
发布于 2014-12-30 23:20:04
下面的代码将生成一个与您的规范相关的数组。
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));
}
}发布于 2014-12-30 22:57:14
*编辑*刚刚看到它是用Java编写的。因此,如果循环中没有一个数字重复,则使用以下函数: String.valueOf(number)将整数转换为字符串。
不知道你在做什么语言,但我假设没有重复,没有回答。所以,您可以做的是有一个从0到9999的循环,然后运行所有的数字,同时检查每一个数字是否重复,如果是这样,丢弃数字(不要存储到数组)。您可以在其函数中以多种语言将整数转换为字符串,这样您就可以这样做,然后将其存储到数组中。祝好运。希望这会有所帮助(来自我的head...there的最快的解决方案可以更有效)
发布于 2014-12-30 23:15:30
尝试以下使用结构创建随机数的方法:
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;
}https://stackoverflow.com/questions/27713731
复制相似问题