如果我有字符串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