日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

空格和空格不一样

發布時間:2025/4/16 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 空格和空格不一样 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

起因

public static String formatMoneyWithFractionNoSign(double d) {NumberFormat fmter = DecimalFormat.getCurrencyInstance(Locale.CHINA);return fmter.format(d).substring(1);}

在安卓5.0之前的系統都能得到有小數點無符號的字符串,形如“5.21”;但是在5.0.1系統的手機上得到了“ 5.21”,多了一個空格導致后續處理出現異常。當我用trim()函數切掉空格的時候,莫名其妙地無效了……

分析

  • 調試看下fmter.format(d)的值是“¥ 2.15”。這里的空格對應160。
  • 用 "¥ 2.15".substring(1).trim(); 調試一下,得到這個 。這里的空格對應32。
  • 前一種的空格trim不掉,后者的可以。
  • trim()的源代碼
  • public String trim() {int start = offset, last = offset + count - 1;int end = last;while ((start <= end) && (value[start] <= ' ')) {start++;}while ((end >= start) && (value[end] <= ' ')) {end--;}if (start == offset && end == last) {return this;}return new String(start, end - start + 1, value);}

    trim()是把字符串的字符分別從兩段跟空格對比,將字符串兩端的符合條件的字符過濾掉。而這里的“空格”字符對應的整數是32。所以160對應的空格處理不了。

    結論

    查看Unicode 碼表知道,除了前32個字符外,還有一些“非打印”字符,而在 Android 5.0.1 環境中得到的那個空格恰好是大于32的空格。

    轉載于:https://www.cnblogs.com/shang1jk/p/4423109.html

    總結

    以上是生活随笔為你收集整理的空格和空格不一样的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。