亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

StringUtils詳解

2019-11-06 06:08:29
字體:
來源:轉載
供稿:網友

StringUtils是工作中使用最頻繁的一個工具類,提供了大量豐富的字符串操作方法,下面是所有方法的一個藍圖:

StringUtils方法概覽

判空函數

1)StringUtils.isEmpty(String str)

2)StringUtils.isNotEmpty(String str)

3)StringUtils.isBlank(String str)

4)StringUtils.isNotBlank(String str)

5)StringUtils.isAnyBlank(CharSequence... CSS)

6)StringUtils.isAnyEmpty(CharSequence... css)

7)StringUtils.isNoneBlank(CharSequence... css)

8)StringUtils.isNoneEmpty(CharSequence... css)

9)StringUtils.isWhitespace(CharSequence cs)

isNotEmpty = !isEmpty, isBlank同理;

容易忽略的;

StringUtils.isEmpty("") = true

isBlank和isEmpty區別:

System.out.PRintln(StringUtils.isBlank(" "));//true System.out.println(StringUtils.isBlank(" "));//true System.out.println(StringUtils.isBlank("/n/t"));//true //區別 StringUtils.isEmpty(" ") = false

isAnyBlank和isAnyEmpty是多維判空,存在一個blank或者empty既true

StringUtils.isAnyBlank("", "bar","foo"); = true //注意這兩個區別 StringUtils.isAnyEmpty(" ", "bar") = false StringUtils.isAnyEmpty(" ", "bar") = true

isNoneBlank = !isAnyBlank;isNoneEmpty同理

public static boolean isNoneBlank(CharSequence... css) { return !isAnyBlank(css); }

isWhitespace判斷空白

StringUtils.isWhitespace(null) = false StringUtils.isWhitespace("") = true StringUtils.isWhitespace(" ") = true

大小寫函數

StringUtils.capitalize(String str)

StringUtils.uncapitalize(String str)

StringUtils.upperCase(String str)

StringUtils.upperCase(String str,Locale locale)

StringUtils.lowerCase(String str)

StringUtils.lowerCase(String str,Locale locale)

StringUtils.swapCase(String str)

StringUtils.isAllUpperCase(CharSequence cs)

StringUtils.isAllLowerCase(CharSequence cs)

注意點:

capitalize首字母大寫,upperCase全部轉化為大寫,swapCase大小寫互轉;

StringUtils.capitalize(null) = null StringUtils.capitalize("") = "" //首字母轉為大寫 StringUtils.capitalize("cat") = "Cat" //全部轉為大寫 StringUtils.upperCase("aBc") = "ABC" //大小寫互轉 StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

isAllUpperCase是否全部大寫,isAllLowerCase是否全部小寫

StringUtils.isAllLowerCase(" ") = false StringUtils.isAllLowerCase("abc") = true StringUtils.isAllLowerCase("abC") = false StringUtils.isAllLowerCase("ab c") = false StringUtils.isAllLowerCase("ab1c") = false StringUtils.isAllLowerCase("ab/c") = false

刪除函數

StringUtils.remove(String str, char remove)

StringUtils.remove(String str, String remove)

StringUtils.removeEnd(String str, String remove)

StringUtils.removeEndIgnoreCase(String str, String remove)

StringUtils.removePattern(String source, String regex)

StringUtils.removeStart(String str, String remove)

StringUtils.removeStartIgnoreCase(String str, String remove)

StringUtils.deleteWhitespace(String str)

具體例子

//刪除字符 StringUtils.remove("queued", 'u') = "qeed" //刪除字符串 StringUtils.remove("queued", "ue") = "qd" //刪除結尾匹配的字符串 StringUtils.removeEnd("www.domain.com", ".com") = "www.domain" //刪除結尾匹配的字符串,找都不到返回原字符串 StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com" //忽略大小寫的 StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain") //刪除所有空白(好用) StringUtils.deleteWhitespace("abc") = "abc" StringUtils.deleteWhitespace(" ab c ") = "abc"

替換函數

replace(String text, String searchString, String replacement)

replace(String text, String searchString, String replacement, int max)

replaceChars(String str, char searchChar, char replaceChar)

replaceChars(String str, String searchChars, String replaceChars)

replaceEach(String text, String[] searchList, String[] replacementList)

replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)

replaceOnce(String text, String searchString, String replacement)

replacePattern(String source, String regex, String replacement)

overlay(String str,String overlay,int start,int end)

例子

StringUtils.replace("aba", "a", "") = "b" StringUtils.replace("aba", "a", "z") = "zbz" //數字就是替換個數,0代表不替換,1代表從開始數起第一個,-1代表全部替換 StringUtils.replace("abaa", "a", "", -1) = "b" StringUtils.replace("abaa", "a", "z", 0) = "abaa" StringUtils.replace("abaa", "a", "z", 1) = "zbaa" StringUtils.replace("abaa", "a", "z", 2) = "zbza" StringUtils.replace("abaa", "a", "z", -1) = "zbzz"

replaceEach是replace的增強版,搜索列表和替換長度必須一致,否則報IllegalArgumentException異常:

StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte" StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "dcte" StringUtils.replaceChars("dabcba", "bcd", "yzx") = "xayzya" StringUtils.replaceChars("abcba", "bc", "y") = "ayya"replaceChars原理圖

replaceOnce只替換一次:

StringUtils.replaceOnce("aba", "a", "") = "ba" StringUtils.replaceOnce("aba", "a", "z") = "zba" StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte" //這是一個非常奇怪的函數,本來自己料想結果應該是“dcte”的,可是結果居然是tcte,而dcte再替換一次就是tcte了。 StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte" StringUtils.overlay("abcdef", "zzzz", 2, 4) = "abzzzzef" StringUtils.overlay("abcdef", "zzzz", 4, 2) = "abzzzzef" StringUtils.overlay("abcdef", "zzzz", -1, 4) = "zzzzef" StringUtils.overlay("abcdef", "zzzz", 2, 8) = "abzzzz" StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef" StringUtils.overlay("abcdef", "zzzz", 8, 10) = "abcdefzzzz"

反轉函數

reverse(String str)

reverseDelimited(String str, char separatorChar)

例:

StringUtils.reverse("bat") = "tab" StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c" StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"

分隔合并函數

split(String str)

split(String str, char separatorChar)

split(String str, String separatorChars)

split(String str, String separatorChars, int max)

splitByCharacterType(String str)

splitByCharacterTypeCamelCase(String str)

splitByWholeSeparator(String str, String separator)

splitByWholeSeparator(String str, String separator, int max)

splitByWholeSeparatorPreserveAllTokens(String str, String separator)

splitByWholeSeparatorPreserveAllTokens(String str, String separator, int max)

splitPreserveAllTokens(String str)

splitPreserveAllTokens(String str, char separatorChar)

splitPreserveAllTokens(String str, String separatorChars)

splitPreserveAllTokens(String str, String separatorChars, int max)

例:

//用空白符做空格 StringUtils.split("abc def") = ["abc", "def"] StringUtils.split("abc def") = ["abc", "def"] StringUtils.split("a..b.c", '.') = ["a", "b", "c"] //用字符分割 StringUtils.split("a:b:c", '.') = ["a:b:c"] //0 或者負數代表沒有限制 StringUtils.split("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"] //分割字符串 ,可以設定得到數組的長度,限定為2 StringUtils.split("ab:cd:ef", ":", 2) = ["ab", "cd:ef"] //null也可以作為分隔 StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"] StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"] StringUtils.splitByWholeSeparator("ab:cd:ef", ":") = ["ab", "cd", "ef"] StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"] //帶有限定長度的分隔 StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]

join(byte[] array,char separator)

join(Object[] array,char separator)等方法

join(Object[] array,char separator,int startIndex,int endIndex)

例:

//只有一個參數的join,簡單合并在一起 StringUtils.join(["a", "b", "c"]) = "abc" StringUtils.join([null, "", "a"]) = "a" //null的話,就是把字符合并在一起 StringUtils.join(["a", "b", "c"], null) = "abc" //從index為0到3合并,注意是排除3的 StringUtils.join([null, "", "a"], ',', 0, 3) = ",,a" StringUtils.join(["a", "b", "c"], "--", 0, 3) = "a--b--c" //從index為1到3合并,注意是排除3的 StringUtils.join(["a", "b", "c"], "--", 1, 3) = "b--c" StringUtils.join(["a", "b", "c"], "--", 2, 3) = "c"

截取函數

substring(String str,int start)

substringAfter(String str,String separator)

substringBeforeLast(String str,String separator)

substringAfterLast(String str,String separator)

substringBetween(String str,String tag)

StringUtils.substring("abcdefg", 0) = "abcdefg" StringUtils.substring("abcdefg", 2) = "cdefg" StringUtils.substring("abcdefg", 4) = "efg" //start>0表示從左向右, start<0表示從右向左, start=0則從左第一位開始 StringUtils.substring("abcdefg", -2) = "fg" StringUtils.substring("abcdefg", -4) = "defg" //從第二個參數字符串開始截取,排除第二個字符串 StringUtils.substringAfter("abc", "a") = "bc" StringUtils.substringAfter("abcba", "b") = "cba" StringUtils.substringAfter("abc", "c") = "" //從最后一個字母出現開始截取 StringUtils.substringBeforeLast("abcba", "b") = "abc" StringUtils.substringBeforeLast("abc", "c") = "ab" StringUtils.substringBeforeLast("a", "a") = "" StringUtils.substringBeforeLast("a", "z") = "a" StringUtils.substringAfterLast("abc", "a") = "bc" StringUtils.substringAfterLast("abcba", "b") = "a" StringUtils.substringAfterLast("abc", "c") = "" StringUtils.substringBetween("tagabctag", null) = null StringUtils.substringBetween("tagabctag", "") = "" StringUtils.substringBetween("tagabctag", "tag") = "abc"

截取分析圖:

截取分析圖 // start>0&&end>0從左開始(包括左)到右結束(不包括右), //start<0&&end<0從右開始(包括右),再向左數到end結束(包括end) StringUtils.substring("abc", -2, -1) = "b" //這個我至今還沒弄明白 StringUtils.substring("abc", -4, 2) = "ab"

相似度函數

一個字符串可以通過增加一個字符,刪除一個字符,替換一個字符得到另外一個字符串,假設,我們把從字符串A轉換成字符串B,前面3種操作所執行的最少次數稱為AB相似度.

getLevenshteinDistance(CharSequence s, CharSequence t)getLevenshteinDistance(CharSequence s, CharSequence t, int threshold)StringUtils.getLevenshteinDistance("elephant", "hippo") = 7StringUtils.getLevenshteinDistance("hippo", "elephant") = 7

例://b替換為dabc adc 度為 1//ababababa去掉a,末尾加bababababa babababab 度為 2abcd acdb 度為2

差異函數

difference(String str1,String str2)

//在str1中尋找str2中沒有的的字符串,并返回 StringUtils.difference("", "abc") = "abc" StringUtils.difference("abc", "") = "" StringUtils.difference("abc", "abc") = "" StringUtils.difference("abc", "ab") = "" StringUtils.difference("ab", "abxyz") = "xyz" StringUtils.difference("abcde", "abxyz") = "xyz" StringUtils.difference("abcde", "xyz") = "xyz"

圖片理解:

差異圖片

縮短省略函數

abbreviate(String str, int maxWidth)

abbreviate(String str, int offset, int maxWidth)

abbreviateMiddle(String str, String middle, int length)

注意:

字符串的長度小于或等于最大長度,返回該字符串。運算規律(substring(str, 0, max-3) + "...")

如果最大長度小于4,則拋出異常。

//(substring(str, 0, 6-3) + "...") StringUtils.abbreviate("abcdefg", 6) = "abc..." StringUtils.abbreviate("abcdefg", 7) = "abcdefg" StringUtils.abbreviate("abcdefg", 8) = "abcdefg" StringUtils.abbreviate("abcdefg", 4) = "a..." StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException

匹配計數函數

countMatches(CharSequence str,char ch)

StringUtils.countMatches("abba", 0) = 0 StringUtils.countMatches("abba", 'a') = 2 StringUtils.countMatches("abba", 'b') = 2 StringUtils.countMatches("abba", 'x') = 0

刪除空白函數

trim(String str)

trimToEmpty(String str)

trimToNull(String str)

deleteWhitespace(String str)

StringUtils.trim(" ") = "" StringUtils.trim("abc") = "abc" StringUtils.trim(" abc ") = "abc" //空的話,返回null StringUtils.trimToNull(" ") = null StringUtils.trimToNull("abc") = "abc" StringUtils.trimToNull(" abc ") = "abc" StringUtils.trimToEmpty(" ") = "" StringUtils.trimToEmpty("abc") = "abc" StringUtils.trimToEmpty(" abc ") = "abc"

-注意這兩者的區別。

StringUtils.deleteWhitespace("") = "" StringUtils.deleteWhitespace("abc") = "abc" StringUtils.deleteWhitespace(" ab c ") = "abc"

判斷是否相等函數

equals(CharSequence cs1,CharSequence cs2)

equalsIgnoreCase(CharSequence str1, CharSequence str2)

StringUtils.equals("abc", null) = false StringUtils.equals("abc", "abc") = true StringUtils.equals("abc", "ABC") = false //忽略大小寫 StringUtils.equalsIgnoreCase("abc", null) = false StringUtils.equalsIgnoreCase("abc", "abc") = true StringUtils.equalsIgnoreCase("abc", "ABC") = true

默認字符函數

defaultString(String str)

defaultString(String str,String defaultStr)

StringUtils.defaultString("") = "" StringUtils.defaultString("bat") = "bat" StringUtils.defaultString("", "NULL") = "" //如果第一個參數為空,這返回第二個默認參數 StringUtils.defaultString("bat", "NULL") = "bat"

填充居中函數

leftPad/rightPad(String str,int size)

leftPad(String str,int size,char padChar)

center(String str,int size)

center(String str,int size,char padChar)

repeat(char ch,int repeat)

repeat(String str,String separator,int repeat)

appendIfMissing(String str, CharSequence suffix, CharSequence... suffixes)

appendIfMissing(String str,CharSequence suffix,CharSequence... suffixes)

StringUtils.leftPad("bat", 3) = "bat" //左填充,默認填充空 StringUtils.leftPad("bat", 5) = " bat" StringUtils.leftPad("bat", 1) = "bat" StringUtils.leftPad("bat", -1) = "bat" //左填充,填充字符為z StringUtils.leftPad("bat", 3, 'z') = "bat" StringUtils.leftPad("bat", 5, 'z') = "zzbat" StringUtils.leftPad("bat", 1, 'z') = "bat" StringUtils.leftPad("bat", -1, 'z') = "bat" //居中 StringUtils.center("ab", -1) = "ab" StringUtils.center("ab", 4) = " ab " StringUtils.center("abcd", 2) = "abcd" StringUtils.center("a", 4) = " a //居中,最后一個參數是填充字符或字符串 StringUtils.center("abcd", 2, ' ') = "abcd" StringUtils.center("a", 4, ' ') = " a " StringUtils.center("a", 4, 'y') = "yayy" //重復字符串,第二個參數是重復次數 StringUtils.repeat("a", 3) = "aaa" StringUtils.repeat("ab", 2) = "abab" StringUtils.repeat("a", -2) = "" //重復字符串,第二個參數是分割符,第三個參數是重復次數 StringUtils.repeat("", "x", 3) = "xxx" StringUtils.repeat("?", ", ", 3) = "?, ?, ?" // StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz" StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno" StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz" StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"

是否包含函數

containsOnly(CharSequence cs,char... valid)

containsNone(CharSequence cs,char... searchChars)

startsWith(CharSequence str,CharSequence prefix)

startsWithIgnoreCase(CharSequence str,CharSequence prefix)

startsWithAny(CharSequence string,CharSequence... searchStrings)

例子

//判斷字符串中所有字符,是否都是出自參數2中 StringUtils.containsOnly("ab", "") = false StringUtils.containsOnly("abab", "abc") = true StringUtils.containsOnly("ab1", "abc") = false StringUtils.containsOnly("abz", "abc") = false //判斷字符串中所有字符,都不在參數2中。 StringUtils.containsNone("abab", 'xyz') = true StringUtils.containsNone("ab1", 'xyz') = true StringUtils.containsNone("abz", 'xyz') = false //判斷字符串是否以第二個參數開始 StringUtils.startsWith("abcdef", "abc") = true StringUtils.startsWith("ABCDEF", "abc") = false

索引下標函數

indexOf(CharSequence seq,CharSequence searchSeq)

indexOf(CharSequence seq,CharSequence searchSeq,int startPos)

indexOfIgnoreCase/lastIndexOfIgnoreCase(CharSequence str,CharSequence searchStr)

lastIndexOf(CharSequence seq,int searchChar)

//返回第二個參數開始出現的索引值 StringUtils.indexOf("aabaabaa", "a") = 0 StringUtils.indexOf("aabaabaa", "b") = 2 StringUtils.indexOf("aabaabaa", "ab") = 1 //從第三個參數索引開始找起,返回第二個參數開始出現的索引值 StringUtils.indexOf("aabaabaa", "a", 0) = 0 StringUtils.indexOf("aabaabaa", "b", 0) = 2 StringUtils.indexOf("aabaabaa", "ab", 0) = 1 StringUtils.indexOf("aabaabaa", "b", 3) = 5 StringUtils.indexOf("aabaabaa", "b", 9) = -1 //返回第二個參數出現的最后一個索引值 StringUtils.lastIndexOf("aabaabaa", 'a') = 7 StringUtils.lastIndexOf("aabaabaa", 'b') = 5 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8) = 7 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8) = 5 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9) = 5
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品视频一区二区三区| 国产婷婷色综合av蜜臀av| 中文字幕精品一区久久久久| 久久天天躁狠狠躁老女人| 国产精品久久久久福利| 一区二区三区亚洲| 国产精品一二区| www.日韩免费| 午夜精品久久久久久久白皮肤| 欧美精品www在线观看| 国产精品视频精品视频| 狠狠色狠色综合曰曰| 国产精品三级久久久久久电影| 国产成人精品午夜| 欧美激情亚洲综合一区| 精品福利在线观看| 国产精品人人做人人爽| 亚洲人在线视频| 国产啪精品视频| 久久99久久99精品中文字幕| 成人黄色大片在线免费观看| 亚洲成人久久久久| 亚洲男人天天操| 在线观看日韩专区| 国产精品自产拍高潮在线观看| 欧美午夜精品久久久久久浪潮| 久久国产色av| 日韩精品中文字幕有码专区| 国产精品第一页在线| 一个人看的www久久| 中文字幕v亚洲ⅴv天堂| 亚洲国产成人一区| 成人日韩在线电影| 久久精品美女视频网站| 精品福利在线观看| 成人网在线视频| 日韩一中文字幕| 国产女人精品视频| 欧美乱人伦中文字幕在线| 一区二区三区动漫| 亚洲一区制服诱惑| 亚洲精品一区二区久| 激情成人在线视频| 亚洲精品国产综合久久| 日韩精品在线视频| 久久久免费精品视频| 九色精品免费永久在线| 国产精品丝袜久久久久久高清| 亚洲天堂一区二区三区| 成人高清视频观看www| 中文字幕一区日韩电影| 日韩精品视频免费| 亚洲成人网在线| 在线成人中文字幕| 色老头一区二区三区在线观看| 影音先锋欧美在线资源| 日韩高清a**址| 亚洲一区999| 国产精品男女猛烈高潮激情| 不卡在线观看电视剧完整版| 欧美日韩午夜剧场| 成人午夜在线视频一区| 亚洲精品少妇网址| 成人黄色中文字幕| 97视频在线观看免费| 国产91免费看片| 热久久免费国产视频| 高清日韩电视剧大全免费播放在线观看| 久久精品91久久久久久再现| 中文字幕欧美日韩va免费视频| 亚洲天堂av女优| 久久综合国产精品台湾中文娱乐网| 97在线视频观看| 91欧美日韩一区| 91黄色8090| 日韩精品中文字幕在线观看| 大桥未久av一区二区三区| 国产精品老牛影院在线观看| 国产91精品不卡视频| 亚洲国产高清自拍| 久久人人爽人人爽人人片av高清| 日韩在线观看免费| 一区二区在线免费视频| 黄色精品一区二区| 亚洲自拍偷拍色图| 国产精品成人免费电影| 久久夜精品va视频免费观看| 热99久久精品| 亚洲欧美色婷婷| 欧美大片免费看| 国产精品pans私拍| 欧美成人精品h版在线观看| 亚洲一区二区久久久久久久| 国产99久久久欧美黑人| 欧美一区二区大胆人体摄影专业网站| 欧美成人中文字幕在线| 欧美有码在线视频| 亚洲tv在线观看| 18一19gay欧美视频网站| 91嫩草在线视频| 欧美电影免费观看大全| 91久久久精品| 91在线视频成人| 美女久久久久久久久久久| 日韩视频在线观看免费| 久久在精品线影院精品国产| 亚洲999一在线观看www| 欧美日韩一区二区免费视频| 国产在线精品播放| 欧美亚洲日本黄色| 青草青草久热精品视频在线观看| 国产婷婷成人久久av免费高清| 奇米成人av国产一区二区三区| 2019亚洲日韩新视频| 亚洲精品视频久久| 国产精品高精视频免费| 亚洲色图综合网| 欧美激情国产精品| 91视频九色网站| 亚洲国产中文字幕在线观看| 欧美电影免费观看| 欧美亚洲视频在线观看| 欧美夫妻性视频| 久久精品亚洲精品| 91在线看www| 亚洲精品日韩激情在线电影| 欧美日韩国产123| 性欧美xxxx视频在线观看| 国产精品久久久久久久久免费看| 亚洲第一级黄色片| 亚洲免费视频观看| 亚洲欧洲日产国产网站| 中文字幕亚洲一区二区三区| 精品亚洲一区二区三区在线播放| 欧美日韩在线观看视频小说| 国产亚洲一区精品| 久久免费视频网站| 国产精品久在线观看| 伊人久久精品视频| 国产午夜精品免费一区二区三区| 欧美性xxxxxxxxx| 亚洲无亚洲人成网站77777| 亚洲情综合五月天| 欧美老女人性生活| 国产精品成人观看视频国产奇米| 日韩在线欧美在线国产在线| www.亚洲男人天堂| 日韩美女视频中文字幕| 欧美性猛交xxxx乱大交| 亚洲在线免费观看| 亚洲天堂2020| 精品日韩视频在线观看| 亚洲精品一区二三区不卡| 少妇激情综合网| 91精品国产自产在线老师啪| 欧美成人免费小视频| 91免费看国产| 久久精品国产欧美激情| 亚洲日韩第一页| 视频直播国产精品| 久久久久久久网站| 日韩免费在线免费观看| 欧美精品电影免费在线观看| 精品国内自产拍在线观看|