如果我有字符串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;
但我不知道下一步该怎么做
如果我有字符串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;
但我不知道下一步该怎么做
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);
试着看一下Integer.parseInt
但你不能使用字符(作为以前的海报在他们的答案中提到),因为char与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);
使用java-8
String reversed = Arrays.stream(x.split(""))
.sorted(String.CASE_INSENSITIVE_ORDER.reversed())
.collect(Collectors.joining());
int v = Integer.parseInt(reversed);
不是最有效的方式,但它的作品。您只需将字符串分解为单个字符,然后将这些字符转换为整数,然后使用数组对它们进行排序。
String x = "2016";
int length=x.length();
int[] myarray = new int[length];
String a;
for(int i=0; i<length; i++)
{
a = ""+x.charAt(i);
int num = Integer.parseInt(a);
myarray[i]=num;
}
for(int i=1; i<length;i++)
{
int temp=0;
if(myarray[i-1] > myarray[i])
{
temp = myarray[i-1];
myarray[i-1] = myarray[i];
myarray[i] = temp;
}
}
该数组现在是升序,然后只是向后打印数组。
for(int i=length-1;i>=0; i--)
{
System.out.print(myarray[i]);
}
希望它有帮助。
调用'toCharArray()',对数组进行排序,将其逆转并解析为整数。 – Andreas
我只能用while和while循环 –
好了,调用'toCharArray()',使用你自己的排序代码对数组进行排序,然后从中构建整数值。嗯....这和我的第一条评论几乎一样。或者如果'toCharArray()'不被允许,那么你自己也要做。 – Andreas