Java 如何将一串数字转换为排序整数?
如果我有String x=“2016”如何将其转换为int类型的6210 我正在努力Java 如何将一串数字转换为排序整数?,java,Java,如果我有String x=“2016”如何将其转换为int类型的6210 我正在努力 String x = "2016" int v = 0; for (int k = 0; k < x.length(); k++) { if (v < x.charAt(k) - '0') { v = x.charAt(k) - '0'; } } v *= 1000; String x=“2016” int v=0; 对于(int k=0;k
String x = "2016"
int v = 0;
for (int k = 0; k < x.length(); k++) {
if (v < x.charAt(k) - '0') {
v = x.charAt(k) - '0';
}
}
v *= 1000;
String x=“2016”
int v=0;
对于(int k=0;k
但是我不知道下一步要做什么char[]stringVals=x.tocharray();
char[] stringVals = x.toCharArray();
int[] results = new int[stringVals.length];
for (int i = 0; i < stringVals.length; i++) {
try {
results[i] = Integer.parseInt(stringVals[i]);
} catch (NumberFormatException nfe) {
//NOTE: write something here if you need to recover from formatting errors
};
}
Arrays.sort(results);
String sortedResult = Arrays.toString(results);
int[]结果=新的int[stringVals.length];
对于(int i=0;i
试试看
但是您不能使用字符(正如前面在回答中提到的海报),因为字符与Integer.parseInt不兼容,只能使用字符串
尝试将字符串解析为数组,如下所示:
String[] numbers = x.split("");
潜在解决方案:
String x = "2016";
String[] numbers = x.split("");
Integer[] nums = new Integer[numbers.length];
for (int k = 0; k < numbers.length; k++) {
nums[k] = Integer.parseInt(numbers[k]);
}
Arrays.sort(nums, Collections.reverseOrder());
StringBuilder strNum = new StringBuilder();
for (int num : nums){
strNum.append(num);
}
int finalInt = Integer.parseInt(strNum.toString());
System.out.println(finalInt);
String x=“2016”;
字符串[]数字=x.split(“”);
整数[]nums=新整数[numbers.length];
for(int k=0;k
使用java-8
String reversed = Arrays.stream(x.split(""))
.sorted(String.CASE_INSENSITIVE_ORDER.reversed())
.collect(Collectors.joining());
int v = Integer.parseInt(reversed);
调用
tocharray()
,对数组进行排序、反转并解析为整数。我只能使用for和while loopsOk,然后调用tocharray()
,使用自己的排序代码对数组进行降序排序,然后从中生成整数值。六羟甲基三聚氰胺六甲醚。。。。这和我的第一个评论差不多。或者,如果不允许使用tocharray()
,也可以自己做。