精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

漲見識!Java String轉int還有這種寫法

開發(fā) 后端
在 Java 中,String(字符串) 和 int(整形) 是兩種不同的數(shù)據(jù)類型,字符串可以把許多字符串起來,整形嘛——就是整形了。

[[338589]]

之前我寫了一篇《老師,你確定Java注釋不會被執(zhí)行嗎》,結果文章在知乎小火了一把,將近 10 萬人閱讀。有愛裝逼的同行批評說,標題夸大了;同時,也有很多初學者表示,漲見識了,之前從來不知道這個知識點,這下學到了。

必須得承認一點,我寫的大多數(shù)技術文章都是針對初學者的,因為我覺得他們最需要幫助,這也是我一直堅持分享的初衷。

我也不喜歡寫那些高深的文章,費時間耗精力,受眾也小。就拿我們學過的古詩來說吧,“鵝鵝鵝,曲項向天歌”,“一去二三里,煙村四五家”,我就覺得挺好的。沒必要都去搞陽春白雪,最后搞得曲高和寡,對吧?

那這次來分享一個新的知識點,我敢賭一包衛(wèi)龍辣條(打錢來),很多同學不一定知道。

在 Java 中,String(字符串) 和 int(整形) 是兩種不同的數(shù)據(jù)類型,字符串可以把許多字符串起來,整形嘛——就是整形了。

(同學們可能會疑惑,這個知識點我能不知道,別蒙我好不好?繼續(xù)往下看唄。吃大餐之前,還能不來點小吃或者涼菜?)

有時候,字符串可以單純包含一些數(shù)字,比如說“123”。大家應該都見過,當一些操作需要你輸入手機驗證碼的時候,大部分要求輸入的都是 6 位或者 4 位的隨機數(shù)字,它們傳遞到服務器端的時候,最初的形式都是字符串類型的,然后可能再轉成整形做一些處理。

對于 Java 來說,不能直接通過“+”操作符來使兩個字符串類型的數(shù)字相加,來看下面的例子。

  1. String a = "100"
  2. String b = "50"
  3. String c = a+b; 
  4. System.out.println(c); 

程序輸出的結果是 10050,而不是 150。對于字符串來說,“+”操作符是用來串聯(lián)的,而不是用來相加的。

(同學們可能又要催了,這個知識點我也知道啊!馬上馬上,重點馬上就來。)

那就有必要先把字符串轉成整形再來做運算了,常見的做法有兩種:

第一種,使用 Integer.valueOf(),它將返回一個包裝器類型 Integer,當然可以通過自動拆箱的方式將其轉成 int 類型。

  1. String a = "100"
  2. String b= "50"
  3. int A = Integer.valueOf(a); 
  4. int B = Integer.valueOf(b); 
  5.  
  6. int c = A+B; 
  7. System.out.println(c); 

程序輸出結果如下所示:

  1. 150 

第二種,使用 Integer.parseInt(),它將返回一個基本數(shù)據(jù)類型 int。

  1. String a = "100"
  2. String b= "50"
  3. int A = Integer.parseInt(a); 
  4. int B = Integer.parseInt(b); 
  5.  
  6. int c = A+B; 
  7. System.out.println(c); 

程序輸出結果如下所示:

  1. 150 

這兩種方式,優(yōu)先推薦第二種,因為不涉及到自動拆箱,性能更佳。

(同學們可能急不可耐了,就這?好了,現(xiàn)在重點真的來了)

那除了上面這兩種方式,同學們還能想到第三種嗎?把字符串轉成整形。是不是突然感覺腦袋里有點空?

空就對了,本篇文章最漲見識的時候,它來了!步履蹣跚地來了!

  1. /** 
  2.  * @author 沉默王二,一枚有趣的程序員 
  3.  */ 
  4. public class String2IntDemo { 
  5.     public static void main(String[] args) { 
  6.         String a = "100"
  7.         String b = "50"
  8.         int A = string2int(a); 
  9.         int B = string2int(b); 
  10.         int c = A + B; 
  11.         System.out.println(c); 
  12.     } 
  13.  
  14.     public static int string2int(String s) { 
  15.         int num = 0; 
  16.         int pos = 1; 
  17.         for (int i = s.length() - 1; i >= 0; i--) { 
  18.             num += (s.charAt(i) - '0') * pos; 
  19.             pos *= 10; 
  20.  
  21.         } 
  22.         return num; 
  23.  
  24.     } 

這段程序輸出的結果同樣是 150。那眼睛雪亮的同學可能就發(fā)現(xiàn)了,string2int()方法到底是個什么樣的神奇方法,還有把字符串轉成整形的功效?

首先,必須得普及一點常識,同學們需要對 ASCII 碼有一點了解,就是所有的字符都有識別它們的代碼——這代碼就是 ASCII 碼。

基于這一點,所有數(shù)字型的字符減去字符‘0’,將會得到該字符的絕對值,是一個整數(shù)。

  1. String s = "520"
  2. System.out.println(s.charAt(2) - '0'); 
  3. System.out.println(s.charAt(1) - '0'); 
  4. System.out.println(s.charAt(0) - '0'); 

輸出結果如下所示:

字符串“520”的長度為 3,也就是說,下標為 2 的位置是字符‘0’——數(shù)字 520 的個位數(shù);下標為 1 的位置是字符‘2’——數(shù)字 520 的十位數(shù);下標為 0 的位置是字符‘5’——數(shù)字 520 的百位數(shù)。

那有些機靈點的同學可能就想到了,通過一個 for 循環(huán),遍歷一下字符串,然后計算出當前位置上的整數(shù)值,個位數(shù)乘以 1,十位數(shù)乘以 10,百位數(shù)乘以 100,然后再加起來,就是字符串對應的整數(shù)值了。

沒錯,沒錯,string2int() 方法就是這么做的,如果參數(shù)是字符串“520”,那返回的結果就是整形 520;如果參數(shù)是字符串“100”,那返回的結果就是整形 100;如果參數(shù)是字符串“50”,那返回的結果就是整形 50。

如果你是一名有追求的程序員,那么對于 Integer.valueOf() 和Integer.parseInt() 都不會太滿意,因為這只是拿別人的輪子來用。而自定義方法 string2int() 就屬于從頭到尾的造輪子了。一想到這,是不是感覺自己開始變牛逼了?

其實,如果你肯扒拉源碼的話,就會恍然大悟。

先來看 Integer.valueOf() 方法:

  1. public static Integer valueOf(String s) throws NumberFormatException { 
  2.     return Integer.valueOf(parseInt(s, 10)); 

內部調用的其實就是 int parseInt(String s, int radix) 方法。

再來看 Integer.parseInt() 方法:

  1. public static int parseInt(String s) throws NumberFormatException { 
  2.     return parseInt(s,10); 

內部調用的也是 int parseInt(String s, int radix) 方法,基數(shù) radix 參數(shù)都是 10——同學們是不是猜到了什么?

對,你猜的八九不離十,再來看一下 int parseInt(String s, int radix) 方法的源碼:

  1. public static int parseInt(String s, int radix) 
  2.         throws NumberFormatException 
  3.     /* 
  4.      * WARNING: This method may be invoked early during VM initialization 
  5.      * before IntegerCache is initialized. Care must be taken to not use 
  6.      * the valueOf method. 
  7.      */ 
  8.  
  9.     if (s == null) { 
  10.         throw new NumberFormatException("null"); 
  11.     } 
  12.  
  13.     if (radix < Character.MIN_RADIX) { 
  14.         throw new NumberFormatException("radix " + radix + 
  15.                 " less than Character.MIN_RADIX"); 
  16.     } 
  17.  
  18.     if (radix > Character.MAX_RADIX) { 
  19.         throw new NumberFormatException("radix " + radix + 
  20.                 " greater than Character.MAX_RADIX"); 
  21.     } 
  22.  
  23.     boolean negative = false
  24.     int i = 0, len = s.length(); 
  25.     int limit = -Integer.MAX_VALUE; 
  26.  
  27.     if (len > 0) { 
  28.         char firstChar = s.charAt(0); 
  29.         if (firstChar < '0') { // Possible leading "+" or "-" 
  30.             if (firstChar == '-') { 
  31.                 negative = true
  32.                 limit = Integer.MIN_VALUE; 
  33.             } else if (firstChar != '+') { 
  34.                 throw NumberFormatException.forInputString(s, radix); 
  35.             } 
  36.  
  37.             if (len == 1) { // Cannot have lone "+" or "-" 
  38.                 throw NumberFormatException.forInputString(s, radix); 
  39.             } 
  40.             i++; 
  41.         } 
  42.         int multmin = limit / radix; 
  43.         int result = 0; 
  44.         while (i < len) { 
  45.             // Accumulating negatively avoids surprises near MAX_VALUE 
  46.             int digit = Character.digit(s.charAt(i++), radix); 
  47.             if (digit < 0 || result < multmin) { 
  48.                 throw NumberFormatException.forInputString(s, radix); 
  49.             } 
  50.             result *= radix; 
  51.             if (result < limit + digit) { 
  52.                 throw NumberFormatException.forInputString(s, radix); 
  53.             } 
  54.             result -= digit; 
  55.         } 
  56.         return negative ? result : -result; 
  57.     } else { 
  58.         throw NumberFormatException.forInputString(s, radix); 
  59.     } 

1)parseInt() 方法判斷了 null 的情況,認為格式不正確。

2)然后判斷了基數(shù) radix 的情況,不能小于 2,不能大于 36。

3)if (len > 0) 判斷了字符串長度的情況,如果為空“”,也認為格式不正確。

4)再然后判斷首個字符 s.charAt(0),如果是負號“-”則認為當前字符串是一個負數(shù);如果不是正號“+”,則認為格式不正確;如果只有一個負號或者正號,也認為格式不正確。

總之,就是比我們的自定義方法 string2int() 更嚴謹。

5)使用 while 循環(huán),配合更專業(yè)的 Character.digit(s.charAt(i++), radix) 計算出每個位置上字符對應的數(shù)值,然后和基數(shù) radix 進行相乘后使用累減的方式計算出最后的數(shù)值。

和 string2int() 有點不同,但整體上思路是一致的。

我們也可以對 string2int() 方法再完善一下,使其滿足負數(shù)的情況:

  1. public class S2IDemo { 
  2.     public static void main(String[] args) { 
  3.         String a = "-100"
  4.         String b = "50"
  5.         int A = string2int(a); 
  6.         int B = string2int(b); 
  7.         int c = A + B; 
  8.         System.out.println(c); 
  9.     } 
  10.  
  11.     public static int string2int(String s) { 
  12.         boolean negative = false
  13.         char firstChar = s.charAt(0); 
  14.         if (firstChar == '-') { 
  15.             negative = true
  16.             s = s.substring(1); 
  17.         } 
  18.         int num = 0; 
  19.         int pos = 1; 
  20.         for (int i = s.length() - 1; i >= 0; i--) { 
  21.             num += (s.charAt(i) - '0') * pos; 
  22.             pos *= 10; 
  23.  
  24.         } 
  25.         return negative ? -num : num; 
  26.     } 

當首個字符為負號‘-’的話,結果就返回負數(shù),并且把原來的字符串截取掉第一位。其他不變,這時候,當 a 為“-100”,b 為“50”的時候,a + b 的結果就是 -50。

 

我就問一句,造輪子的感覺是不是很爽?反正我已經(jīng)爽過了。

本文轉載自微信公眾號「沉默王二」,可以通過以下二維碼關注。轉載本文請聯(lián)系沉默王二公眾號。

 

責任編輯:武曉燕 來源: 沉默王二
相關推薦

2021-06-30 13:31:18

線程安全ThreadLocal

2021-09-03 11:15:18

場景sql配置

2021-05-06 07:00:28

Excel數(shù)據(jù)技巧

2021-03-07 16:41:06

URLSpring5

2021-12-27 09:13:51

騰訊京東共同富裕

2021-11-18 07:39:41

Json 序列化Vue

2021-04-16 10:45:02

SQLJava函數(shù)

2021-08-29 23:14:06

Windows 11Windows微軟

2018-07-12 14:59:44

獵網(wǎng)

2023-10-30 08:16:33

數(shù)據(jù)庫插件Mybatis

2009-09-10 09:54:24

虛擬化LinuxLinux操作系統(tǒng)

2020-06-07 16:07:57

Python開發(fā)工具

2021-05-03 23:41:42

微信功能知識

2017-06-16 16:16:36

庫存扣減查詢

2018-09-13 10:59:30

Redis鍵值存儲

2022-10-17 08:17:47

位掩碼Java變量

2021-01-14 05:08:44

編譯鏈接

2021-08-10 10:48:39

拷貝代碼架構耦合

2024-07-26 10:47:10

2015-04-14 09:46:09

Apple Watch秘密
點贊
收藏

51CTO技術棧公眾號

av基地在线| 黄色录像免费观看| 依依综合在线| 国产欧美精品区一区二区三区| 亚洲激情偷拍| 24小时成人在线视频| 国产99在线|中文| 日韩久久久久久| 久久久天堂国产精品| 色窝窝无码一区二区三区| 99久久精品一区二区成人| 中文字幕在线不卡一区二区三区| 91久久精品国产91久久性色tv| 国产精品自拍99| 午夜精品一区二区三区国产| 日韩久久免费视频| 青青草原播放器| 欧美激情喷水| 亚洲一级不卡视频| 亚洲国产日韩美| 性xxxx搡xxxxx搡欧美| 激情图片小说一区| 奇米4444一区二区三区| 欧美成人综合色| 成人av国产| 亚洲国产小视频在线观看| 中文字幕亚洲影院| 成人精品电影在线| 精品色蜜蜜精品视频在线观看| 女女同性女同一区二区三区按摩| 国产高清免费av在线| 国产成人啪免费观看软件| 国产精品揄拍500视频| 亚洲午夜18毛片在线看| 国色天香一区二区| 日韩中文字幕在线看| 在线观看国产精品一区| 老司机在线精品视频| 成人免费在线视频观看| 极品校花啪啪激情久久| 国产乱码精品一区二区| 日韩av不卡在线观看| 欧美一级淫片播放口| 久久影院一区二区| 欧美激情第10页| 久久九九亚洲综合| 久久久久久国产免费a片| 久久成人高清| 亚洲人成在线观看| 蜜桃传媒一区二区亚洲av| 青青草久久爱| 亚洲高清久久网| 国产黑丝在线观看| 欧美天堂影院| 亚洲深夜福利在线| 久久久久久久毛片| 精品一区电影| 最新91在线视频| 美女三级黄色片| 欧美国产小视频| 久久久国产一区| 黑鬼狂亚洲人videos| 一区二区电影| 欧美激情videoshd| 男人的天堂一区| 性一交一乱一区二区洋洋av| 国产成人精品久久亚洲高清不卡| 好吊色在线视频| 免费在线一区观看| 成人性生交大片免费看视频直播| 国产精品久久影视| 国产精品亚洲а∨天堂免在线| av资源站久久亚洲| 午夜18视频在线观看| 久久久久久亚洲综合影院红桃| 欧美精品一区二区视频| av电影在线播放高清免费观看| 中文字幕一区二区三区蜜月 | 欧美激情喷水| 欧美中文字幕久久| www午夜视频| 美国十次综合久久| 亚洲成人av片| japanese中文字幕| 亚洲91中文字幕无线码三区| 久久久久国产精品免费网站| 三级网站在线播放| 国产精品影视在线| 久久精品日产第一区二区三区| 国产高清在线| 一个色在线综合| 久久久久久久久久久视频| 高清成人在线| 日韩美一区二区三区| 欧美一区二区三区成人精品| 日韩一级毛片| 4388成人网| 国产亲伦免费视频播放| av成人动漫在线观看| 亚洲激情图片| 免费一二一二在线视频| 欧美人动与zoxxxx乱| 国产又黄又粗又猛又爽的视频 | 制服丝袜在线一区| 国产成人精品亚洲777人妖 | 亚洲一区二区在线| 日本福利片高清在线观看| 亚洲欧美日韩一区| 农村妇女精品一二区| 亚洲1区在线| 中文字幕亚洲字幕| 精品成人免费视频| 国产麻豆欧美日韩一区| 视频在线精品一区| 麻豆视频在线观看免费网站黄| 欧美日韩美女一区二区| 丰满大乳奶做爰ⅹxx视频| 亚洲视频在线免费| 国产精品久久久久久久av电影| 亚洲男人天堂久久| 亚洲视频一二三区| 国产超碰在线播放| 亚洲最大在线| 777777777亚洲妇女| 亚洲爆乳无码一区二区三区| 国产精品福利av| 哪个网站能看毛片| 麻豆一区一区三区四区| 欧美日本亚洲视频| 一级黄色片在线播放| 久久精品夜色噜噜亚洲a∨| www.在线观看av| 美女日韩一区| 不卡中文字幕av| 国产一区二区小视频| 国产午夜久久久久| 日批视频在线免费看| 美日韩黄色大片| 午夜精品99久久免费| 亚洲爆乳无码一区二区三区| 一区二区三区四区高清精品免费观看| www.cao超碰| 日韩片欧美片| 国产视频福利一区| 日本韩国在线视频爽| 欧美日本乱大交xxxxx| 四季av中文字幕| 久久精品国产成人一区二区三区| 无码免费一区二区三区免费播放| 亚洲四虎影院| 中文字幕在线观看日韩| 一级日韩一级欧美| 国产精品久久久久三级| 国内av一区二区| 夜间精品视频| 国产精品免费观看高清| 波多野结依一区| 亚洲精品中文字| 91久久国产综合久久91| 欧美国产一区二区| 亚洲精品第三页| 欧美精品色网| 精品国产中文字幕| 91精品影视| 久久精品国产欧美激情| 精品人妻无码一区二区色欲产成人 | 国产精品无码免费播放| 国产午夜精品理论片a级大结局| 男人操女人免费| 精品久久视频| 91精品免费视频| 久久av色综合| 日韩精品在线视频观看| 国产精品高清无码| 亚洲欧美日韩国产成人精品影院 | 国产成人久久| 国产精品自产拍在线观看中文| 精品自拍一区| 亚洲精品wwwww| 日本一区二区三区久久| 亚洲精品成人a在线观看| 国产熟女高潮一区二区三区| 日一区二区三区| 六月婷婷激情网| 美国十次av导航亚洲入口| 国产精品久久综合av爱欲tv| 超碰免费公开在线| 亚洲精品网站在线播放gif| 91久久精品国产91性色69| 一区二区三区欧美久久| 亚欧洲乱码视频| 国产一区二区三区在线观看免费视频 | 欧美性生活一级片| 国产精品男女猛烈高潮激情| fc2ppv国产精品久久| 日韩成人在线观看| 国产麻豆免费观看| 欧美色xxxx| 欧美成欧美va| 国产三区在线成人av| 香蕉久久久久久av成人| 欧美专区在线| 国产精品久久国产| 久久一级电影| 免费在线成人av电影| 久久精品九色| 国产精品免费久久久久影院| 国产理论在线| 欧美大成色www永久网站婷| 国产高清一区在线观看| 亚洲精品电影网| www.国产三级| 在线播放国产精品二区一二区四区| 自拍偷拍欧美亚洲| 一区二区三区在线免费视频| 天天摸日日摸狠狠添| 久久综合狠狠综合| 高清中文字幕mv的电影| 国产一区二区三区在线观看精品| 国产免费视频传媒| 在线综合亚洲| 妞干网在线视频观看| 欧美日本三区| 日日噜噜夜夜狠狠久久丁香五月| 日韩在线看片| 日韩高清av| 色综合综合色| 欧美一级爱爱| 中文有码一区| 欧美精品在线一区| 日本欧美高清| 国产欧美欧洲| 国产伦理久久久久久妇女 | 亚洲h视频在线观看| 欧美丰满美乳xxx高潮www| 国产免费一区二区三区四区五区| 欧美日韩午夜视频在线观看| 日韩字幕在线观看| 天天综合天天综合色| 日韩欧美亚洲视频| 亚洲成人免费看| 日韩精品――中文字幕| 午夜精品在线视频一区| 久久精品亚洲无码| 亚洲一区二区在线免费看| 久久久久无码精品国产| 有坂深雪av一区二区精品| 国产黄色的视频| 97在线观看免费观看高清 | 欧美美最猛性xxxxxx| 亚洲va天堂va欧美ⅴa在线| 91精品国产色综合久久| 国产一区二区女内射| 欧美一区二区在线播放| 欧美一区二区.| 国产又色又爽又黄又免费| 国产女主播视频一区二区| 天堂av手机在线| 国产一区二区精品久久91| 性xxxxxxxxx| 国产精品一区一区三区| 欧美性猛交xxx乱久交| 国产一区二区精品| 手机看片福利盒子久久| 18videosex性欧美麻豆| 久久久精品视频在线观看| 在线中文免费视频| 亚州国产精品久久久| 成人欧美大片| 国产精品免费一区| 天堂av一区| 九九久久99| 奇米影视777在线欧美电影观看| 日本在线观看一区| 97精品视频在线看| 国产 欧美 日本| 新67194成人永久网站| 久草福利视频在线| 国产福利精品一区| 色婷婷av777| 久久久综合精品| 波多野结衣先锋影音| 中文字幕欧美区| 免费人成在线观看| 欧美日韩精品在线播放| 在线播放成人av| 日韩欧美的一区二区| 9191国产视频| 杨幂一区二区三区免费看视频| 一本久久a久久精品vr综合| 欧美日韩三区| 久草综合在线观看| 国产成人综合在线播放| 一级黄色性视频| 亚洲一区二区三区在线看| 国产一级免费视频| 日韩免费高清视频| 自拍视频在线网| 8050国产精品久久久久久| 在线播放成人| 欧美高清性xxxxhdvideosex| 你懂的网址国产 欧美| 99免费视频观看| 成人高清视频在线观看| 日本黄色激情视频| 精品高清美女精品国产区| 国产精品区在线观看| 国产午夜精品久久久| 怡红院在线播放| 国产精品普通话| 四虎884aa成人精品最新| 91视频成人免费| 久久国产精品72免费观看| 久久丫精品国产亚洲av不卡| 亚洲综合图片区| 91无套直看片红桃| 国产一区二区三区高清在线观看| 成人在线高清免费| 91久久国产自产拍夜夜嗨| 999精品视频| 91在线视频观看免费| 91蜜桃网址入口| 精品成人免费视频| 亚洲第一网中文字幕| 伊人精品影院| 亚洲一区二区三区久久| 久久国产成人精品| 黑森林精品导航| 久久久久国产精品麻豆ai换脸| 亚洲精品视频在线观看免费视频| 日韩欧美美女一区二区三区| 久cao在线| 成人网在线观看| 希岛爱理一区二区三区| www.久久av.com| 中文字幕一区视频| 亚洲一区 中文字幕| 国产亚洲精品va在线观看| 欧美亚洲韩国| 日韩精品一区二区三区丰满| 欧美专区18| 韩国三级hd中文字幕| 在线看国产一区二区| 久久经典视频| 国产精品九九九| 久久国产精品成人免费观看的软件| 成人黄色一区二区| 国产视频一区在线播放| 亚洲视频中文字幕在线观看| 色七七影院综合| www欧美在线观看| 国产精品日韩三级| www.欧美日韩| 精品国产一区二区三区四| 亚洲欧美另类人妖| 成人免费一区| 天天干天天色天天爽| 国产不卡视频一区| 日韩免费不卡视频| 亚洲免费人成在线视频观看| 日韩不卡免费高清视频| 丝袜足脚交91精品| 国产一区二区在线影院| 国产在线观看成人| 亚洲免费伊人电影在线观看av| 日日av拍夜夜添久久免费| 亚洲韩国在线| 国产成人欧美日韩在线电影| 日韩美女视频网站| 亚洲无线码在线一区观看| 欧美黄色网络| 男人天堂手机在线视频| 东方aⅴ免费观看久久av| 精品国产乱码一区二区| 中文字幕av一区二区| 视频一区国产| 日韩在线第三页| 亚洲日本丝袜连裤袜办公室| 少妇精品高潮欲妇又嫩中文字幕 | av亚洲精华国产精华精| 无码人妻精品一区二区三区蜜桃91| 综合国产在线视频| 9l视频自拍蝌蚪9l视频成人| 国产福利视频在线播放| 日本一区二区乱| 青青久久av北条麻妃黑人| 成人在线免费观看网站| 国产免费a级片| 欧美中文字幕一区二区三区亚洲| 羞羞的视频在线观看| 欧美日本韩国国产| 国产成人综合网站| 波多野结衣视频免费观看| 久久69精品久久久久久久电影好| 亚洲综合福利| 国产免费无码一区二区| 欧美无砖专区一中文字| 久久男人天堂| 无码毛片aaa在线| 国产免费观看久久|