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

在Groovy中使用字符串

開發(fā) 開發(fā)工具
本文介紹了Groovy的數(shù)據(jù)類型和控制結(jié)構(gòu)中的字符串。Groovy支持兩種類型字符串:一般的Java字符串,以及GStrings。本文的例子中詳細(xì)解釋了兩種字符串各自的用法。

Groovy支持兩種類型字符串:一般的Java字符串,它是java.lang.String的實例;和GStrings,它是groovy.lang.GString的實例,并且允許文本中包含占位符。GStrings并不是String的子類,因為String類是最終類(final class)不能被繼承。然而,GString與一般的字符串一樣,因為Groovy能將GStrings轉(zhuǎn)型為Java strings。

GString 適用于編寫模板代碼(templating),因為您必須動態(tài)構(gòu)建字符串(GStrings are useful in templating situations where you have to build your string dynamicly)。以下的清單給出了一個例子。

使用GStrings:

  1. firstWord = 'Hello' 
  2.  
  3. secondWord = 'dlroW' 
  4.  
  5. println  "$firstWord ${secondWord.reverse()}" 

結(jié)果如下:

  1. Hello World 

GStrings不同于Java strings在于它們允許以${..}的語法嵌入變量。如果一個字符串由雙引號或三重引號括起來,并且包含一個非轉(zhuǎn)義符(unescaped)$,它必定是groovy.lang.GString的一個實例;否則,就是java.lang.String的一個實例。

${..}里可以包含任意有效的Groovy表達(dá)式,包括方法調(diào)用或變量名。只有調(diào)用GString的toString方法時(例如,把結(jié)果輸出到控制臺),${..}表達(dá)式才被求值。

Groovy支持的另一種字符串便是java.lang.String。然而,GDK還是動態(tài)注入許多幫助方法,使其易于應(yīng)用。

以下的例子展示了在Groovy中聲明一個字符串的不同方式:

  1. s1 = "Hello \"World\" " //Escape double quotes,轉(zhuǎn)義雙引號  
  2.  
  3. s2 = 'Hello "World" ' 
  4.  
  5. assert s1 == s2  
  6.  
  7. s3 = 'Hello \'World\' ' //Escape single quotes,轉(zhuǎn)義單引號  
  8.  
  9. s4 = "Hello 'World' " 
  10.  
  11. assert s3 == s4  
  12.  
  13. assert new String('Hello World') == "Hello World" 
  14.  
  15. def s = ['h','e','l','l','o'] as char[]  
  16.  
  17. assert new String(s) == 'hello' 
  18.  
  19. assert new String(s,0,4) == 'hell' 
  20.  
  21. s.eachWithIndex{ch,index -> assert ch == s[index]}  
  22.  
  23. assert 'hello'.toCharArray() == ['h','e','l','l','o']  
  24.  
  25.    

常用的轉(zhuǎn)義符:

  1. assert '\t' == '\011'    //Tab,Tab鍵  
  2.  
  3. assert '\n' == '\012'    //New line,換行符  
  4.  
  5. assert '\r' == '\015'    //Carriage return,回車  
  6.  
  7. assert '\n' == """  
  8.  
  9. ""//Spanning multiple lines,跨越多行  

對象的字符串表示:

  1. def object = new Object()  
  2.  
  3. assert String.valueOf(object) == object.toString() //Objects   
  4.  
  5. assert String.valueOf(true) == true.toString() //Booleans   
  6.  
  7. assert String.valueOf('a') == 'a'.toString() //Characters   
  8.  
  9. assert String.valueOf(1) == 1.toString() //Numbers  
  10.  
  11. assert String.valueOf([a:1,b:2]) == [a:1,b:2].toString() //Collections  

字符串長度:

  1. s = "Hello World" 
  2.  
  3. assert s.size() == 11 
  4.  
  5. assert s.size() == s.length()  

填充(pad)字符串:

  1. assert 'Hello'.padRight(7,'*') == 'Hello**' 
  2.  
  3. assert 'Hello'.padLeft(7,'*') == '**Hello' 
  4.  
  5. assert 'Hello'.center(9,'*') == '**Hello**' 

分解字符串:

  1. s = "The quick brown fox jumps over the lazy dog" 
  2.  
  3. assert s.tokenize() == ['The','quick','brown','fox','jumps','over','the','lazy','dog']  
  4.  
  5. assert s.tokenize() == new StringTokenizer(s).collect{it}  
  6.  
  7. s1 = "The,quick*brown*fox,*jumps*over*the*lazy*dog" 
  8.  
  9. assert s1.tokenize(',*') == s.tokenize()  

查詢字符串:

 

  1. alphabets = new String('a' .. 'z' as char[])  
  2.  
  3. assert alphabets.find{it > 'f'} == 'g' //First one found  
  4.  
  5. assert alphabets.findAll{it > 'f'} == 'g' .. 'z'//ALl found  
  6.  
  7. assert alphabets.findIndexOf{ it > 'f'} == alphabets.indexOf('g')  
  8.  
  9. assert alphabets.every {it > 'A'}  
  10.  
  11. assert alphabets.any{it < 'c'}  
  12.  
  13. assert alphabets.startsWith('abc')  
  14.  
  15. assert alphabets.endsWith('xyz')  
  16.  
  17. assert alphabets.contains('def')  
  18.  
  19. assert alphabets.indexOf('c') == 2 
  20.  
  21. assert alphabets.indexOf('d') == alphabets.lastIndexOf('d')  
  22.  
  23. assert alphabets.count('a') == 1 

替換字符串:

  1. s = "Hello" 
  2.  
  3. assert s.replace('H','Y') == 'Yello' 
  4.  
  5. assert s.replace('l','p') == 'Heppo' 

字符串反轉(zhuǎn):

  1. s = 'mirror' 
  2.  
  3. assert s.reverse() == 'rorrim' 

字符串操作符:

  1. assert 'hello' + ' world' - 'l' == 'helo world' //Subtracts at most one l  
  2.  
  3. assert ('Today is Sunday' - 'Sunday').trim() == 'Today is' 
  4.  
  5. assert 'hello ' * 2 == 'hello hello ' 
  6.  
  7. def empty = []  
  8.  
  9. assert 'abc'.each{empty << it} == 'abc' 
  10.  
  11. assert 'abc'.next() == 'abd' 
  12.  
  13. assert 'abc'.previous() == 'abb' 

下標(biāo)操作符:

  1. assert 'hello'[1] == 'e' 
  2.  
  3. assert 'hello'[2..'hello'.size() - 1] == 'llo' 
  4.  
  5. assert 'hello'[0,2,4] == 'hlo' 
  6.  
  7. assert 'hello'[-4,-2] == 'el' 

字符串比較:

  1. assert 'a' < 'b' 
  2.  
  3. assert 'a' > 'A' 
  4.  
  5. assert 'a'.compareTo('b') == -1 
  6.  
  7. assert 'a'.compareToIgnoreCase('A') == 0 

尋找最大值和最小值:

  1. Collections.max('abcdeF'.toList()) == 'e' 
  2.  
  3. assert Collections.max('abcdeF'.toList(), String.CASE_INSENSITIVE_ORDER) == 'F' 
  4.  
  5. assert Collections.min(['abc','abd','abe']) == 'abc'      
  6.  
  7. assert Collections.min(['Abc','aBd','abE'], String.CASE_INSENSITIVE_ORDER) == 'Abc' 

StringBuffers和StringBuilders是可變的,允許字符串改變。StringBuilder不是線程安全的,因此處理速度要比StringBuffers快。

  1. def sb = new StringBuffer('Hello World')  
  2.  
  3. assert sb.toString() == 'Hello World' 
  4.  
  5. sb.length = 5 
  6.  
  7. assert sb.toString() == 'Hello' 
  8.  
  9. assert sb.substring(0,2) == 'He' 
  10.  
  11. //Use <<, append(String) or leftShift(String) to append to a StringBuffer.  
  12.  
  13. //Using + to append to a StringBuffer will return a String  
  14.  
  15. sb = new StringBuffer("Hello")  
  16.  
  17. assert sb + ' World' in java.lang.String  
  18.  
  19. assert sb << ' World' in java.lang.StringBuffer  
  20.  
  21. assert sb.toString() == ("Hello World")  
  22.  
  23. assert sb.append(", Groovy rocks").toString() == "Hello World, Groovy rocks" 
  24.  
  25. assert sb.leftShift(". Doesn't?").toString() == "Hello World, Groovy rocks. Doesn't?" 

您也可以對StringBuffer或StringBuilder使用下標(biāo),如:

  1. sb = new StringBuffer("abcdefg")  
  2.  
  3. assert sb[0] == 'a' 
  4.  
  5. assert sb[2..4] == 'cde' 
  6.  
  7. assert sb[0].class == String  
  8.  
  9. assert sb[-6..-4] == "bcd" 
  10.  
  11. sb[0..2] = "xyz" 
  12.  
  13. assert sb.toString() == "xyzdefg" 

操作StringBuffers:

  1. sb = new StringBuffer("StringBuffers are mutable")  
  2.  
  3. sb.delete(sb.indexOf(" are mutable"),sb.size())  
  4.  
  5. assert sb.toString() == "StringBuffers" 
  6.  
  7. sb.insert(sb.size(), " are mutable")  
  8.  
  9. assert sb.toString() == "StringBuffers are mutable" 
  10.  
  11. sb.replace(sb.indexOf("StringBuffers"), "StringBuffers".size(), "StringBuilders")  
  12.  
  13. assert sb.toString() == "StringBuilders are mutable" 
  14.  
  15. def string = new String(sb)  
  16.  
  17. def string2 = string.replaceAll("StringBuilders""StringBuffers")  
  18.  
  19. assert string2 == "StringBuffers are mutable" 
  20.  
  21.    

正如您看到的,GDK在java.lang.String,java.lang.StringBuffer和java.lang.StringBuilder基礎(chǔ)上添加了很多實用的方法。前面的例子只討論部分方法,因此推薦您查看String的API文檔,http://groovy.codehaus.org/groovy-jdk/java/lang/String.html;StringBuffer, http://groovy.codehaus.org/groovy-jdk/java/lang/StringBuffer.html; StringBuilder, http://groovy.codehaus.org/groovy-jdk/java/lang/StringBuilder.html。

在Groovy中使用字符串時,需要注意以下幾點(diǎn):

與Java一樣,Groovy中的字符串也是不可變的(即只讀的)。欲改變字符串值需使用StringBuffer或StringBuilder。

Groovy中,如果字符串如果由單引號括起來,或者由雙引號或三重引號括起來但沒有非轉(zhuǎn)義的美元符號($),那么該字符串是java.lang.String的一個實例。您可使用JDK中任意字符串方法。另外,GDK動態(tài)注入額外的實用方法到String類。

由于Groovy會自動轉(zhuǎn)型為String類,您可以在任何時候使用GStrings。

字符串可被單引號,雙引號或者三重引號括起來。其中,三重引號可直接跨越數(shù)行并且輸出中仍包含回車符、制表符和空格符。

Groovy使用size方法來查詢一個字符串,StringBuffer或StringBuilder的長度,與查詢一個集合的長度相統(tǒng)一。

某些字符串方法接受閉包,它明確說明需要滿足的條件,例如,find,findAll,findIndexOf,every和any。這些方法都是由GDK動態(tài)注入到j(luò)ava.lang.Object中的。

您可以使用collect,each或者eachWithIndex方法遍歷字符串,而且這些方法也屬于java.lang.Object的一部分。

您可對字符串使用操作符。操作符“+”完成字符串聯(lián)接;“-”則最多去掉一個右操作數(shù)的實例;“*”按照給定的數(shù)字復(fù)制字符串;next實現(xiàn)字符串最后一個字節(jié)自增;previous實現(xiàn)字符串最后一個字節(jié)自減。

您可對Strings,StringBuffers和StringBuilders使用下標(biāo)操作符,也可以在下標(biāo)操作符中使用range和負(fù)索引(即索引可以是負(fù)數(shù),計數(shù)從右邊開始)。

【編輯推薦】

  1. Groovy腳本文件中的靜態(tài)main方法
  2. 基于JVM的語言正在開始流行
  3. 專題:Groovy開發(fā)技術(shù)
  4. 專題:Scala編程語言
  5. Groovy如何幫助JavaFX:別了,純粹的Java代碼?
責(zé)任編輯:yangsai 來源: JavaEye博客
相關(guān)推薦

2021-11-25 00:04:16

C# 插值字符串

2022-11-21 12:06:24

fgrep命令Linux

2009-11-24 19:02:35

PHP常用字符串

2019-01-29 10:30:32

阿里巴巴Java字符串

2019-02-27 09:00:13

阿里巴巴for循環(huán)Java

2011-04-22 11:07:24

groovyJava

2023-01-09 09:52:06

Bash字符串

2011-08-04 17:13:48

Objective-C 字符串

2020-06-04 08:10:30

Python字符串開發(fā)

2021-11-01 07:00:32

IP字符串數(shù)據(jù)

2009-09-18 15:22:14

DataContextLINQ to SQL

2009-06-23 14:13:00

Java字符串

2009-06-25 16:49:24

Hibernate

2013-12-13 17:21:14

Lua腳本語言

2023-11-17 12:04:39

GORM并發(fā)

2023-04-12 15:25:09

Bytrace鴻蒙

2023-12-11 15:18:03

C++字符串Unicode

2024-04-01 08:41:39

字符串.NET

2009-06-30 14:16:37

截取字符串

2023-12-11 07:33:05

Go語言字符技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

亚洲美女少妇无套啪啪呻吟| 日本中文字幕伦在线观看| 久久美女精品| 56国语精品自产拍在线观看| 欧美激情亚洲天堂| 台湾av在线二三区观看| 日本91福利区| 国产最新精品视频| wwwww黄色| 国产精品久久久久久久久久白浆| 亚洲欧美激情插| 精品产品国产在线不卡| 一区二区三区免费在线视频| 国产欧美日韩亚洲一区二区三区| 亚洲精品456在线播放狼人| 999精品视频在线| 国产黄色片在线观看| 国v精品久久久网| 国产美女精品视频免费观看| 三级黄色在线视频| 视频一区在线观看| 欧美va亚洲va| 中文字幕在线视频一区二区三区| 在线h片观看| 国产精品免费看片| 欧美日韩精品免费观看视一区二区| 蜜臀精品一区二区三区| 狠狠入ady亚洲精品| 久久精彩免费视频| 国产真人做爰视频免费| 亚洲系列另类av| 欧美精品一区二区三区在线 | 国产一区毛片| 亚洲а∨天堂久久精品9966| www.成年人| avav成人| 在线欧美日韩精品| 亚洲av首页在线| 欧美一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 99福利在线| 自拍偷拍国产亚洲| 亚洲一区二区三区精品视频| www.五月婷婷| 国模大尺度一区二区三区| 国产精品久久久久久久久免费看| 极品久久久久久| 久久免费大视频| 一区二区三区动漫| 男人的天堂官网| 欧美亚洲国产激情| 最近2019年中文视频免费在线观看 | 在线观看网站免费入口在线观看国内| 日本一区二区免费在线观看视频| 91沈先生播放一区二区| 97在线视频人妻无码| 精品在线一区二区三区| 国产中文字幕91| 国产精品suv一区二区三区| 亚洲激情网站| 欧美一区二区三区精品电影| 青青草手机在线视频| 在线观看免费一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 人妻熟女aⅴ一区二区三区汇编| 国产福利一区二区三区在线播放| 中文字幕色av一区二区三区| 久久影视中文粉嫩av| 日本一卡二卡四卡精品| 国产亚洲综合性久久久影院| 亚洲日本精品一区| 青青操在线视频| 99久久精品一区| 欧美大香线蕉线伊人久久| 九一国产在线| 综合亚洲深深色噜噜狠狠网站| 欧美日韩国产精品一卡| 天天综合在线视频| 久久久综合视频| 亚洲高清视频一区| 中文字幕在线观看网站| 福利精品视频在线| 亚洲一级片网站| 91嫩草精品| 亚洲视频电影图片偷拍一区| 羞羞在线观看视频| 亚洲精品影视| 国产欧美久久一区二区| 亚洲婷婷久久综合| 国产精品自拍一区| 欧美日韩天天操| 麻豆传媒在线观看| 天天综合日日夜夜精品| 9l视频白拍9色9l视频| 日韩中文在线| 在线看欧美日韩| 日本三级网站在线观看| 美日韩一级片在线观看| 国产传媒一区二区| 成年人在线视频| 天天综合日日夜夜精品| aaa一级黄色片| 亚洲高清影院| 亚洲男女性事视频| 人人人妻人人澡人人爽欧美一区| 免费av一区| 欧美激情精品久久久久久黑人| 国产无码精品视频| 激情综合在线| 国产在线高清精品| 国产伦精品一区二区三区免.费 | 精品国产91久久久| 亚洲国产精品久久久久婷蜜芽| 麻豆视频在线看| 亚洲国产sm捆绑调教视频| 国产又大又黄又粗的视频| 北条麻妃在线一区二区免费播放 | 欧美特黄a级高清免费大片a级| 欧美国产亚洲视频| 中文字幕在线观看视频一区| 成人网在线免费视频| 综合国产精品久久久| 亚洲综合电影| 亚洲精品电影在线观看| 黄色一级视频免费| 中文在线不卡| 99久久精品无码一区二区毛片 | 国产在线一级片| 激情综合色丁香一区二区| 欧美日韩精品中文字幕一区二区| 日本成a人片在线观看| 在线观看亚洲精品视频| 国产色视频一区二区三区qq号| 欧美艳星介绍134位艳星| 国产91精品久| 日韩在线视频观看免费| 亚洲一线二线三线久久久| 国产亚洲视频一区| 91综合视频| 成人激情免费在线| 欧美jizzhd69巨大| 欧美日韩一区二区三区四区五区| 亚洲美女精品视频| 亚洲精品久久| 91黄色国产视频| av免费网站在线观看| 91精品国产综合久久婷婷香蕉 | 国产精品乱码久久久久久| 日本老熟妇毛茸茸| 精品理论电影| 国内精品一区二区三区四区| 成人一级免费视频| 欧美韩国日本不卡| 亚洲天堂网2018| 亚洲国产一区二区三区在线播放| 77777亚洲午夜久久多人| 怡红院男人天堂| 国产精品色婷婷| av在线免费看片| 中文字幕亚洲精品乱码| 国产精品久久久久久久久| eeuss影院在线观看| 欧美日韩精品欧美日韩精品| 中文精品在线观看| 免费日韩av片| 无遮挡亚洲一区| 亚洲人成777| 欧美黑人性生活视频| 日本黄视频在线观看| 欧美午夜视频一区二区| 免费看裸体网站| 国产精品一区二区在线播放 | 国产视频网站在线| 欧美日韩视频在线一区二区| 大地资源高清在线视频观看| 国产精品一二一区| 精品无码一区二区三区在线| **爰片久久毛片| 欧美亚洲成人xxx| 在线观看美女网站大全免费| 欧美一级黄色片| 欧美日韩一二三四区| 国产精品免费看片| 男人的天堂影院| 日本美女视频一区二区| 日韩精品极品视频在线观看免费| 伊人久久av| 久久中文精品视频| 偷拍自拍在线| 91精品国产一区二区| 亚洲伊人成人网| 亚洲天堂免费在线观看视频| 喷水视频在线观看| 久久精品72免费观看| 午夜精品亚洲一区二区三区嫩草 | 国产精品9999久久久久仙踪林| 国产视频中文字幕在线观看| 日韩的一区二区| 国产剧情精品在线| 日本久久一区二区三区| 免费又黄又爽又色的视频| 久久久久久久久久久久久女国产乱 | 波多野结衣在线观看| 亚洲成人久久一区| 一级黄色免费看| 狠狠综合久久av一区二区小说| 中文字幕一区二区三区人妻电影| 久久视频一区| www.日本在线视频| 97人人精品| 日本一区二区视频| 精品女人视频| 亚洲一区二区三区毛片 | 欧洲亚洲视频| 97中文在线观看| 开心久久婷婷综合中文字幕| 欧美中文字幕视频| 国产精品—色呦呦| 久久久成人精品视频| av中文字幕在线| 亚洲欧美国产一本综合首页| 日本韩国免费观看| 欧美大胆人体bbbb| av手机免费看| 欧美性xxxx18| 日韩美女视频网站| 一区二区激情小说| 青青青在线免费观看| 91丝袜美腿高跟国产极品老师 | 欧美黄色成人| 国产精品久久久久久久久久久久久久 | 久久在线观看视频| 在线观看av黄网站永久| 精品第一国产综合精品aⅴ| 国产视频1区2区| 亚洲美女一区二区三区| 午夜影院黄色片| 国产日本欧美一区二区| 丰腴饱满的极品熟妇| 久久人人超碰精品| 激情小说欧美色图| 久久九九99| 777米奇影视第四色| 国产一区二区你懂的| 国产日产欧美视频| 久久一区中文字幕| 人人干人人视频| 欧美aaa在线| 色91精品久久久久久久久| 久久www免费人成看片高清| 国产视频1区2区3区| 精品中文字幕一区二区| 自慰无码一区二区三区| 欧美电影三区| 欧美日韩一区二区三区在线观看免| 精品精品视频| 国产精品日韩在线| 色戒汤唯在线| 亚洲**2019国产| 色呦呦在线看| 午夜精品一区二区三区在线| 在线最新版中文在线| 国产成人av在线播放| 国产在视频一区二区三区吞精| 2019av中文字幕| 欧美电影网址| 成人激情视频免费在线| 亚洲福利合集| 久久国产精品亚洲va麻豆| 少妇精品久久久| 国产成年人在线观看| 黑人一区二区三区四区五区| 成熟了的熟妇毛茸茸| 奇米色一区二区三区四区| 在线观看网站黄| 久久香蕉国产线看观看99| 黄色免费一级视频| 亚洲综合色丁香婷婷六月图片| 成人免费精品动漫网站| 亚洲在线视频免费观看| 黄瓜视频在线免费观看| 欧美日韩国产欧美日美国产精品| 久久久久久不卡| 91麻豆精品国产91久久久使用方法 | 亚洲av无码一区二区三区人| 国产精品乱码久久久久久| 日韩激情一区二区三区| 欧美在线看片a免费观看| 男人的天堂av网站| 欧美一区二区三级| 裸体xxxx视频在线| 久久99精品视频一区97| 日韩欧美一区二区三区免费观看| 国产成人av网| 51亚洲精品| 午夜欧美一区二区三区免费观看| 精品国产一区二区三区四区 | 亚洲高清视频的网址| 国产美女www| 亚洲精品在线观看视频| av大全在线免费看| 26uuu亚洲国产精品| 日韩亚洲国产免费| 欧美精品久久| 伊人天天综合| 国产美女视频免费看| 国产欧美一区在线| 日本韩国欧美中文字幕| 日韩欧美国产一区二区三区| √天堂资源地址在线官网| 欧美有码在线观看| 欧美与亚洲与日本直播| 成人免费在线视频网址| 欧美美女在线观看| 日韩欧美不卡在线| 精品综合久久久久久8888| 日本人dh亚洲人ⅹxx| 久久久无码精品亚洲日韩按摩| av在线播放中文字幕| 色呦呦日韩精品| 四虎在线视频免费观看| 欧美精品国产精品日韩精品| 欧美日韩国产v| 国产综合动作在线观看| 红桃成人av在线播放| 国产精品12p| 麻豆精品视频在线观看视频| 免费看三级黄色片| ...中文天堂在线一区| 性高潮视频在线观看| 日韩女优视频免费观看| 免费一级毛片在线观看| 97国产在线视频| 大香伊人久久精品一区二区 | 啊v在线视频| 日本视频久久久| 伊人久久大香线蕉av不卡| 美女日批免费视频| 成人在线视频首页| 国产又粗又猛又爽又黄的视频四季 | 久久久久亚洲av无码专区体验| 婷婷一区二区三区| 天天爱天天干天天操| 久久久久久亚洲精品不卡| www.亚洲一二| 精品欧美一区免费观看α√| aaa亚洲精品| 在线观看国产亚洲| 日韩精品在线视频美女| 中文在线а√天堂| 青娱乐国产91| 奇米影视7777精品一区二区| 懂色av蜜臀av粉嫩av永久| 欧美日韩精品一区二区三区 | 婷婷久久五月天| 亚洲中字在线| 人妻视频一区二区| 7777精品伊人久久久大香线蕉的| 国产露出视频在线观看| 国产精品久久一区| 牲欧美videos精品| 欧美成人免费高清视频| 日本一区二区成人在线| 欧美男人亚洲天堂| 最新国产成人av网站网址麻豆| 厕沟全景美女厕沟精品| 日本在线播放一区| 精品一区二区在线观看| 特黄一区二区三区| 欧美一区二区三区视频免费播放| 在线日本中文字幕| 91精品国产91久久久久青草| 最新亚洲视频| 亚洲一级片在线播放| 欧美主播一区二区三区美女| 手机亚洲第一页| 2018国产精品视频| 欧美调教视频| 狠狠躁狠狠躁视频专区| 亚洲欧美日韩国产综合| 香蕉久久一区二区三区| 国产精品久久久久久久一区探花 | 波多野结衣一区二区三区| 五月天婷婷久久| 久久在线视频在线| 深爱激情综合| 久久久久亚洲av无码网站| 黄色成人在线播放| 日本中文在线观看| 精品欧美日韩在线| 中文一区在线| 少妇人妻丰满做爰xxx| 精品一区二区三区三区| 亚洲爽爆av| 欧美黄网站在线观看| 亚洲免费在线电影| 国产视频网址在线| 国产一区免费视频| 狠狠色狠狠色综合| 青娱乐国产在线|