正如標題所示,如果輸入例如是2.1k
它應該等於2100
,如果它是3.7k
它將是3700
等等。我有一些代碼如下,我還沒有真正嘗試過什麼,只是想着公式何以是:進行高級號碼計算? 2.1k等於2100等。
String arg = args[0];
if(arg.contains("k")) {
args[0].replace("k", "000");
}
正如標題所示,如果輸入例如是2.1k
它應該等於2100
,如果它是3.7k
它將是3700
等等。我有一些代碼如下,我還沒有真正嘗試過什麼,只是想着公式何以是:進行高級號碼計算? 2.1k等於2100等。
String arg = args[0];
if(arg.contains("k")) {
args[0].replace("k", "000");
}
你可以檢查arg
與「K」結尾,如果它不解析雙值「K」之前,前述每一個字符和乘1000喜歡的東西
String arg = "2.1k";
if (arg.endsWith("k")) {
int val = (int) (Double.parseDouble(arg.substring(0, arg.length() - 1))
* 1000);
arg = String.valueOf(val);
}
System.out.println(arg);
輸出
2100
謝謝,這工作完美。 –
對於k
例如這將是:
int count = StringUtils.countMatches(arg, "k");//count the amount of k's
double decNumber = Double.parseDouble(arg.replace("k", "");//removes all k's and parse to a double
double finalNumber = decNumber * Math.pow(1000, k);//multiple by 1000^k
這適用於任何金額AFTER十進制數。
正確的方式做,這看起來更像是:
String arg = args[0];
if(arg.contains("k")) {
newVal = args[0].replace("k", ""); //just drop the K and be left with a decimal
newVal = parseInt(args[0] * 1000); //New value is whatever was passed in times 1000
}
我想我的回答是比Java更多的JavaScript。但你明白了。 – durbnpoisn
字符串是不可變的。 'replace'創建新的字符串,不影響舊字符串。 – Pshemo
嗯,那你片斷貼添加一個過米任何零,並且它也不會刪除小數點。 「 – jthomas
」......我沒有真的嘗試過任何東西......「 - 你應該這樣做,然後如果你卡住了,回來問一個關於你遇到的具體困難的問題。 – azurefrog
'.replace'不改變字符串,它返回修改過的字符串。 –