iT邦幫忙

0

java 去除string部分字串和增加點號逗點

  • 分享至 

  • xImage

例如我有個字串需要去除最右邊的三個字並在去除後2與3中間加個.號,在之後三個字元加,號該怎麼做呢?
1234567899 變成12,345.67
12345678999變成123,456.78

基本上是因為我還要做運算所以需要修改成這方式, ,號的部分就不是必要,一般都是從左邊開始處理,所以遇到這種問題就不知道該怎麼從右邊處理了,請大家協助了,感謝。

slime iT邦大師 1 級 ‧ 2018-04-25 06:00:28 檢舉
substring() + format() ?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
wingkawa
iT邦新手 3 級 ‧ 2018-04-25 09:57:51

啊我眼殘弄錯了,下面不是java的寫法,是javascript的……
思路上應該是類似的,你可以參考看看

可以當字串用正規表達式玩,雖然感覺有點繞,當練習XD

// 原本的字串
let originString = '1234567899';

/**
 * 去掉後三碼:
 * $1 = (\d*): 任意數量的數字0-9
 * $2 = (\d{2}): 兩個數字0-9
 * $3 = (\d{3}): 三個數字0-9
 */
let newString = originString.replace(/(\d*)(\d{2})(\d{3})/, "$1.$2");
// 加 ,
let result = parseFloat(newString).toLocaleString();

console.log(result);

要這樣寫就不應該用正規表達式吧~/images/emoticon/emoticon10.gif

0
海綿寶寶
iT邦大神 1 級 ‧ 2018-04-25 11:59:47
public class HelloWorld{

     public static void main(String []args){
        String sA = "1234567899";
        String sB = "12345678999";
        String sTA = String.format("%1$,.2f", Double.parseDouble(sA.substring(0, sA.length() - 3)) / 100);
        String sTB = String.format("%1$,.2f", Double.parseDouble(sB.substring(0, sB.length() - 3)) / 100);
        System.out.println(sTA);
        System.out.println(sTB);
     }
}
c5488 iT邦新手 5 級 ‧ 2018-04-25 22:02:14 檢舉

請問在這轉換中間sTA-sTB 要怎麼處理呢?

java 去除string部分字串和增加點號逗點

沒有 sTA-sTB ?

我要發表回答

立即登入回答