日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作...

發(fā)布時(shí)間:2024/7/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

關(guān)于字符串工具類StringUtils實(shí)現(xiàn)字符串是否包含isChinese中文、是否包含isMessyCode亂碼、常規(guī)數(shù)據(jù)類型轉(zhuǎn)換、替換/刪除/判空、兩字符串?dāng)?shù)組mergeStringArrays合并、刪除trimArrayElements字符串?dāng)?shù)組指定數(shù)組元素、字符串去重removeDuplicateStrings處理、字符串集合轉(zhuǎn)換等相關(guān)處理。

二、代碼示例import?com.alibaba.fastjson.JSONObject;@b@@b@import?org.apache.commons.lang.WordUtils;@b@import?org.springframework.util.CollectionUtils;@b@import?org.springframework.util.ObjectUtils;@b@@b@import?java.nio.charset.Charset;@b@import?java.text.DateFormat;@b@import?java.text.SimpleDateFormat;@b@import?java.util.ArrayList;@b@import?java.util.Arrays;@b@import?java.util.Collection;@b@import?java.util.Collections;@b@import?java.util.Date;@b@import?java.util.Enumeration;@b@import?java.util.Iterator;@b@import?java.util.LinkedList;@b@import?java.util.List;@b@import?java.util.Locale;@b@import?java.util.Properties;@b@import?java.util.Random;@b@import?java.util.Set;@b@import?java.util.StringTokenizer;@b@import?java.util.TimeZone;@b@import?java.util.TreeSet;@b@import?java.util.regex.Matcher;@b@import?java.util.regex.Pattern;@b@@b@public?class?StringUtils?{@b@@b@public?static?final?Charset?DEFAULT_CHARSET?=?Charset.forName("UTF-8");@b@@b@private?static?DateFormat?date_format?=?new?SimpleDateFormat("yyyy/M/d",?Locale.ENGLISH);@b@private?static?DateFormat?time_format?=?new?SimpleDateFormat("yyyy/M/d?hh:mm:ss",?Locale.ENGLISH);@b@@b@private?static?final?String?FOLDER_SEPARATOR?=?"/";@b@@b@private?static?final?String?WINDOWS_FOLDER_SEPARATOR?=?"\\";@b@@b@private?static?final?String?TOP_PATH?=?"..";@b@@b@private?static?final?String?CURRENT_PATH?=?".";@b@@b@private?static?final?char?EXTENSION_SEPARATOR?=?'.';@b@@b@public?static?String?defFormatDate(Date?date)?{@b@return?date_format.format(date);@b@}@b@@b@public?static?String?defFormatTime(Date?date)?{@b@return?time_format.format(date);@b@}@b@@b@public?static?String?firstUpcase(String?text)?{@b@if?(text?!=?null?&&?text.length()?>?0)?{@b@if?(text.length()?==?1)?{@b@return?text.toUpperCase();@b@}@b@return?text.substring(0,?1).toUpperCase()?+?text.substring(1);?@b@}@b@return?text;@b@}@b@@b@public?static?String?firstLowercase(String?text)?{@b@if?(text?!=?null?&&?text.length()?>?0)?{@b@if?(text.length()?==?1)?{@b@return?text.toLowerCase();@b@}@b@return?text.substring(0,?1).toLowerCase()?+?text.substring(1);@b@}@b@return?text;@b@}@b@@b@public?static?String?getter(String?field)?{@b@return?"get"?+?firstUpcase(field);@b@}@b@@b@public?static?String?setter(String?field)?{@b@return?"set"?+?firstUpcase(field);@b@}@b@@b@public?static?String?indent(int?idx)?{@b@StringBuffer?result?=?new?StringBuffer(idx*4?+?1);@b@for?(int?i?=?0;?i??0.4)?{??@b@????????????return?true;??@b@????????}?else?{??@b@????????????return?false;??@b@????????}??@b@????}??@b@@b@//---------------------------------------------------------------------@b@//?General?convenience?methods?for?working?with?Strings@b@//---------------------------------------------------------------------@b@@b@/**@b@?*?Check?whether?the?given?String?is?empty.@b@?*?

This?method?accepts?any?Object?as?an?argument,?comparing?it?to@b@?*?{@code?null}?and?the?empty?String.?As?a?consequence,?this?method@b@?*?will?never?return?{@code?true}?for?a?non-null?non-String?object.@b@?*?

The?Object?signature?is?useful?for?general?attribute?handling?code@b@?*?that?commonly?deals?with?Strings?but?generally?has?to?iterate?over@b@?*?Objects?since?attributes?may?e.g.?be?primitive?value?objects?as?well.@b@?*?@param?str?the?candidate?String@b@?*?@since?3.2.1@b@?*/@b@public?static?boolean?isEmpty(Object?str)?{@b@return?(str?==?null?||?"".equals(str));@b@}@b@@b@public?static?boolean?hasEmpty(Object...strs)?{@b@for?(Object?str?:?strs)?{@b@if?(str?==?null?||?"".equals(str))?{@b@return?true;@b@}@b@}@b@return?false;@b@}@b@@b@/**@b@?*?Check?that?the?given?CharSequence?is?neither?{@code?null}?nor?of?length?0.@b@?*?Note:?Will?return?{@code?true}?for?a?CharSequence?that?purely?consists?of?whitespace.@b@?*?

@b@?*?StringUtils.hasLength(null)?=?false@b@?*?StringUtils.hasLength("")?=?false@b@?*?StringUtils.hasLength("?")?=?true@b@?*?StringUtils.hasLength("Hello")?=?true@b@?*?@b@?*?@param?str?the?CharSequence?to?check?(may?be?{@code?null})@b@?*?@return?{@code?true}?if?the?CharSequence?is?not?null?and?has?length@b@?*?@see?#hasText(String)@b@?*/@b@public?static?boolean?hasLength(CharSequence?str)?{@b@return?(str?!=?null?&&?str.length()?>?0);@b@}@b@@b@/**@b@?*?Check?that?the?given?String?is?neither?{@code?null}?nor?of?length?0.@b@?*?Note:?Will?return?{@code?true}?for?a?String?that?purely?consists?of?whitespace.@b@?*?@param?str?the?String?to?check?(may?be?{@code?null})@b@?*?@return?{@code?true}?if?the?String?is?not?null?and?has?length@b@?*?@see?#hasLength(CharSequence)@b@?*/@b@public?static?boolean?hasLength(String?str)?{@b@return?hasLength((CharSequence)?str);@b@}@b@@b@/**@b@?*?Check?whether?the?given?CharSequence?has?actual?text.@b@?*?More?specifically,?returns?{@code?true}?if?the?string?not?{@code?null},@b@?*?its?length?is?greater?than?0,?and?it?contains?at?least?one?non-whitespace?character.@b@?*?@b@?*?StringUtils.hasText(null)?=?false@b@?*?StringUtils.hasText("")?=?false@b@?*?StringUtils.hasText("?")?=?false@b@?*?StringUtils.hasText("12345")?=?true@b@?*?StringUtils.hasText("?12345?")?=?true@b@?*?@b@?*?@param?str?the?CharSequence?to?check?(may?be?{@code?null})@b@?*?@return?{@code?true}?if?the?CharSequence?is?not?{@code?null},@b@?*?its?length?is?greater?than?0,?and?it?does?not?contain?whitespace?only@b@?*?@see?Character#isWhitespace@b@?*/@b@public?static?boolean?hasText(CharSequence?str)?{@b@if?(!hasLength(str))?{@b@return?false;@b@}@b@int?strLen?=?str.length();@b@for?(int?i?=?0;?i??0?&&?Character.isWhitespace(sb.charAt(0)))?{@b@sb.deleteCharAt(0);@b@}@b@while?(sb.length()?>?0?&&?Character.isWhitespace(sb.charAt(sb.length()?-?1)))?{@b@sb.deleteCharAt(sb.length()?-?1);@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Trim?all?whitespace?from?the?given?String:@b@?*?leading,?trailing,?and?in?between?characters.@b@?*?@param?str?the?String?to?check@b@?*?@return?the?trimmed?String@b@?*?@see?java.lang.Character#isWhitespace@b@?*/@b@public?static?String?trimAllWhitespace(String?str)?{@b@if?(!hasLength(str))?{@b@return?str;@b@}@b@StringBuilder?sb?=?new?StringBuilder(str);@b@int?index?=?0;@b@while?(sb.length()?>?index)?{@b@if?(Character.isWhitespace(sb.charAt(index)))?{@b@sb.deleteCharAt(index);@b@}@b@else?{@b@index++;@b@}@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Trim?leading?whitespace?from?the?given?String.@b@?*?@param?str?the?String?to?check@b@?*?@return?the?trimmed?String@b@?*?@see?java.lang.Character#isWhitespace@b@?*/@b@public?static?String?trimLeadingWhitespace(String?str)?{@b@if?(!hasLength(str))?{@b@return?str;@b@}@b@StringBuilder?sb?=?new?StringBuilder(str);@b@while?(sb.length()?>?0?&&?Character.isWhitespace(sb.charAt(0)))?{@b@sb.deleteCharAt(0);@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Trim?trailing?whitespace?from?the?given?String.@b@?*?@param?str?the?String?to?check@b@?*?@return?the?trimmed?String@b@?*?@see?java.lang.Character#isWhitespace@b@?*/@b@public?static?String?trimTrailingWhitespace(String?str)?{@b@if?(!hasLength(str))?{@b@return?str;@b@}@b@StringBuilder?sb?=?new?StringBuilder(str);@b@while?(sb.length()?>?0?&&?Character.isWhitespace(sb.charAt(sb.length()?-?1)))?{@b@sb.deleteCharAt(sb.length()?-?1);@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Trim?all?occurrences?of?the?supplied?leading?character?from?the?given?String.@b@?*?@param?str?the?String?to?check@b@?*?@param?leadingCharacter?the?leading?character?to?be?trimmed@b@?*?@return?the?trimmed?String@b@?*/@b@public?static?String?trimLeadingCharacter(String?str,?char?leadingCharacter)?{@b@if?(!hasLength(str))?{@b@return?str;@b@}@b@StringBuilder?sb?=?new?StringBuilder(str);@b@while?(sb.length()?>?0?&&?sb.charAt(0)?==?leadingCharacter)?{@b@sb.deleteCharAt(0);@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Trim?all?occurrences?of?the?supplied?trailing?character?from?the?given?String.@b@?*?@param?str?the?String?to?check@b@?*?@param?trailingCharacter?the?trailing?character?to?be?trimmed@b@?*?@return?the?trimmed?String@b@?*/@b@public?static?String?trimTrailingCharacter(String?str,?char?trailingCharacter)?{@b@if?(!hasLength(str))?{@b@return?str;@b@}@b@StringBuilder?sb?=?new?StringBuilder(str);@b@while?(sb.length()?>?0?&&?sb.charAt(sb.length()?-?1)?==?trailingCharacter)?{@b@sb.deleteCharAt(sb.length()?-?1);@b@}@b@return?sb.toString();@b@}@b@@b@@b@/**@b@?*?Test?if?the?given?String?starts?with?the?specified?prefix,@b@?*?ignoring?upper/lower?case.@b@?*?@param?str?the?String?to?check@b@?*?@param?prefix?the?prefix?to?look?for@b@?*?@see?java.lang.String#startsWith@b@?*/@b@public?static?boolean?startsWithIgnoreCase(String?str,?String?prefix)?{@b@if?(str?==?null?||?prefix?==?null)?{@b@return?false;@b@}@b@if?(str.startsWith(prefix))?{@b@return?true;@b@}@b@if?(str.length()?=?str.length()?||?str.charAt(i)?!=?substring.charAt(j))?{@b@return?false;@b@}@b@}@b@return?true;@b@}@b@@b@/**@b@?*?Count?the?occurrences?of?the?substring?in?string?s.@b@?*?@param?str?string?to?search?in.?Return?0?if?this?is?null.@b@?*?@param?sub?string?to?search?for.?Return?0?if?this?is?null.@b@?*/@b@public?static?int?countOccurrencesOf(String?str,?String?sub)?{@b@if?(str?==?null?||?sub?==?null?||?str.length()?==?0?||?sub.length()?==?0)?{@b@return?0;@b@}@b@int?count?=?0;@b@int?pos?=?0;@b@int?idx;@b@while?((idx?=?str.indexOf(sub,?pos))?!=?-1)?{@b@++count;@b@pos?=?idx?+?sub.length();@b@}@b@return?count;@b@}@b@@b@/**@b@?*?Replace?all?occurrences?of?a?substring?within?a?string?with@b@?*?another?string.@b@?*?@param?inString?String?to?examine@b@?*?@param?oldPattern?String?to?replace@b@?*?@param?newPattern?String?to?insert@b@?*?@return?a?String?with?the?replacements@b@?*/@b@public?static?String?replace(String?inString,?String?oldPattern,?String?newPattern)?{@b@if?(!hasLength(inString)?||?!hasLength(oldPattern)?||?newPattern?==?null)?{@b@return?inString;@b@}@b@StringBuilder?sb?=?new?StringBuilder();@b@int?pos?=?0;?//?our?position?in?the?old?string@b@int?index?=?inString.indexOf(oldPattern);@b@//?the?index?of?an?occurrence?we've?found,?or?-1@b@int?patLen?=?oldPattern.length();@b@while?(index?>=?0)?{@b@sb.append(inString.substring(pos,?index));@b@sb.append(newPattern);@b@pos?=?index?+?patLen;@b@index?=?inString.indexOf(oldPattern,?pos);@b@}@b@sb.append(inString.substring(pos));@b@//?remember?to?append?any?characters?to?the?right?of?a?match@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Delete?all?occurrences?of?the?given?substring.@b@?*?@param?inString?the?original?String@b@?*?@param?pattern?the?pattern?to?delete?all?occurrences?of@b@?*?@return?the?resulting?String@b@?*/@b@public?static?String?delete(String?inString,?String?pattern)?{@b@return?replace(inString,?pattern,?"");@b@}@b@@b@/**@b@?*?Delete?any?character?in?a?given?String.@b@?*?@param?inString?the?original?String@b@?*?@param?charsToDelete?a?set?of?characters?to?delete.@b@?*?E.g.?"az\n"?will?delete?'a's,?'z's?and?new?lines.@b@?*?@return?the?resulting?String@b@?*/@b@public?static?String?deleteAny(String?inString,?String?charsToDelete)?{@b@if?(!hasLength(inString)?||?!hasLength(charsToDelete))?{@b@return?inString;@b@}@b@StringBuilder?sb?=?new?StringBuilder();@b@for?(int?i?=?0;?i??"myfile.txt".@b@?*?@param?path?the?file?path?(may?be?{@code?null})@b@?*?@return?the?extracted?filename,?or?{@code?null}?if?none@b@?*/@b@public?static?String?getFilename(String?path)?{@b@if?(path?==?null)?{@b@return?null;@b@}@b@int?separatorIndex?=?path.lastIndexOf(FOLDER_SEPARATOR);@b@return?(separatorIndex?!=?-1???path.substring(separatorIndex?+?1)?:?path);@b@}@b@@b@/**@b@?*?Extract?the?filename?extension?from?the?given?path,@b@?*?e.g.?"mypath/myfile.txt"?->?"txt".@b@?*?@param?path?the?file?path?(may?be?{@code?null})@b@?*?@return?the?extracted?filename?extension,?or?{@code?null}?if?none@b@?*/@b@public?static?String?getFilenameExtension(String?path)?{@b@if?(path?==?null)?{@b@return?null;@b@}@b@int?extIndex?=?path.lastIndexOf(EXTENSION_SEPARATOR);@b@if?(extIndex?==?-1)?{@b@return?null;@b@}@b@int?folderIndex?=?path.lastIndexOf(FOLDER_SEPARATOR);@b@if?(folderIndex?>?extIndex)?{@b@return?null;@b@}@b@return?path.substring(extIndex?+?1);@b@}@b@@b@/**@b@?*?Strip?the?filename?extension?from?the?given?path,@b@?*?e.g.?"mypath/myfile.txt"?->?"mypath/myfile".@b@?*?@param?path?the?file?path?(may?be?{@code?null})@b@?*?@return?the?path?with?stripped?filename?extension,@b@?*?or?{@code?null}?if?none@b@?*/@b@public?static?String?stripFilenameExtension(String?path)?{@b@if?(path?==?null)?{@b@return?null;@b@}@b@int?extIndex?=?path.lastIndexOf(EXTENSION_SEPARATOR);@b@if?(extIndex?==?-1)?{@b@return?path;@b@}@b@int?folderIndex?=?path.lastIndexOf(FOLDER_SEPARATOR);@b@if?(folderIndex?>?extIndex)?{@b@return?path;@b@}@b@return?path.substring(0,?extIndex);@b@}@b@@b@/**@b@?*?Apply?the?given?relative?path?to?the?given?path,@b@?*?assuming?standard?Java?folder?separation?(i.e.?"/"?separators).@b@?*?@param?path?the?path?to?start?from?(usually?a?full?file?path)@b@?*?@param?relativePath?the?relative?path?to?apply@b@?*?(relative?to?the?full?file?path?above)@b@?*?@return?the?full?file?path?that?results?from?applying?the?relative?path@b@?*/@b@public?static?String?applyRelativePath(String?path,?String?relativePath)?{@b@int?separatorIndex?=?path.lastIndexOf(FOLDER_SEPARATOR);@b@if?(separatorIndex?!=?-1)?{@b@String?newPath?=?path.substring(0,?separatorIndex);@b@if?(!relativePath.startsWith(FOLDER_SEPARATOR))?{@b@newPath?+=?FOLDER_SEPARATOR;@b@}@b@return?newPath?+?relativePath;@b@}@b@else?{@b@return?relativePath;@b@}@b@}@b@@b@/**@b@?*?Normalize?the?path?by?suppressing?sequences?like?"path/.."?and@b@?*?inner?simple?dots.@b@?*?

The?result?is?convenient?for?path?comparison.?For?other?uses,@b@?*?notice?that?Windows?separators?("\")?are?replaced?by?simple?slashes.@b@?*?@param?path?the?original?path@b@?*?@return?the?normalized?path@b@?*/@b@public?static?String?cleanPath(String?path)?{@b@if?(path?==?null)?{@b@return?null;@b@}@b@String?pathToUse?=?replace(path,?WINDOWS_FOLDER_SEPARATOR,?FOLDER_SEPARATOR);@b@@b@//?Strip?prefix?from?path?to?analyze,?to?not?treat?it?as?part?of?the@b@//?first?path?element.?This?is?necessary?to?correctly?parse?paths?like@b@//?"file:core/../core/io/Resource.class",?where?the?".."?should?just@b@//?strip?the?first?"core"?directory?while?keeping?the?"file:"?prefix.@b@int?prefixIndex?=?pathToUse.indexOf(":");@b@String?prefix?=?"";@b@if?(prefixIndex?!=?-1)?{@b@prefix?=?pathToUse.substring(0,?prefixIndex?+?1);@b@pathToUse?=?pathToUse.substring(prefixIndex?+?1);@b@}@b@if?(pathToUse.startsWith(FOLDER_SEPARATOR))?{@b@prefix?=?prefix?+?FOLDER_SEPARATOR;@b@pathToUse?=?pathToUse.substring(1);@b@}@b@@b@String[]?pathArray?=?delimitedListToStringArray(pathToUse,?FOLDER_SEPARATOR);@b@List?pathElements?=?new?LinkedList();@b@int?tops?=?0;@b@@b@for?(int?i?=?pathArray.length?-?1;?i?>=?0;?i--)?{@b@String?element?=?pathArray[i];@b@if?(CURRENT_PATH.equals(element))?{@b@//?Points?to?current?directory?-?drop?it.@b@}@b@else?if?(TOP_PATH.equals(element))?{@b@//?Registering?top?path?found.@b@tops++;@b@}@b@else?{@b@if?(tops?>?0)?{@b@//?Merging?path?element?with?element?corresponding?to?top?path.@b@tops--;@b@}@b@else?{@b@//?Normal?path?element?found.@b@pathElements.add(0,?element);@b@}@b@}@b@}@b@@b@//?Remaining?top?paths?need?to?be?retained.@b@for?(int?i?=?0;?i?This?is?the?inverse?operation?of?{@link?Locale#toString?Locale's?toString}.@b@?*?@param?localeString?the?locale?String,?following?{@code?Locale's}@b@?*?{@code?toString()}?format?("en",?"en_UK",?etc);@b@?*?also?accepts?spaces?as?separators,?as?an?alternative?to?underscores@b@?*?@return?a?corresponding?{@code?Locale}?instance@b@?*?@throws?IllegalArgumentException?in?case?of?an?invalid?locale?specification@b@?*/@b@public?static?Locale?parseLocaleString(String?localeString)?{@b@String[]?parts?=?tokenizeToStringArray(localeString,?"_?",?false,?false);@b@String?language?=?(parts.length?>?0???parts[0]?:?"");@b@String?country?=?(parts.length?>?1???parts[1]?:?"");@b@validateLocalePart(language);@b@validateLocalePart(country);@b@String?variant?=?"";@b@if?(parts.length?>?2)?{@b@//?There?is?definitely?a?variant,?and?it?is?everything?after?the?country@b@//?code?sans?the?separator?between?the?country?code?and?the?variant.@b@int?endIndexOfCountryCode?=?localeString.lastIndexOf(country)?+?country.length();@b@//?Strip?off?any?leading?'_'?and?whitespace,?what's?left?is?the?variant.@b@variant?=?trimLeadingWhitespace(localeString.substring(endIndexOfCountryCode));@b@if?(variant.startsWith("_"))?{@b@variant?=?trimLeadingCharacter(variant,?'_');@b@}@b@}@b@return?(language.length()?>?0???new?Locale(language,?country,?variant)?:?null);@b@}@b@@b@private?static?void?validateLocalePart(String?localePart)?{@b@for?(int?i?=?0;?i?The?order?of?elements?in?the?original?arrays?is?preserved.@b@?*?@param?array1?the?first?array?(can?be?{@code?null})@b@?*?@param?array2?the?second?array?(can?be?{@code?null})@b@?*?@return?the?new?array?({@code?null}?if?both?given?arrays?were?{@code?null})@b@?*/@b@public?static?String[]?concatenateStringArrays(String[]?array1,?String[]?array2)?{@b@if?(ObjectUtils.isEmpty(array1))?{@b@return?array2;@b@}@b@if?(ObjectUtils.isEmpty(array2))?{@b@return?array1;@b@}@b@String[]?newArr?=?new?String[array1.length?+?array2.length];@b@System.arraycopy(array1,?0,?newArr,?0,?array1.length);@b@System.arraycopy(array2,?0,?newArr,?array1.length,?array2.length);@b@return?newArr;@b@}@b@@b@/**@b@?*?Merge?the?given?String?arrays?into?one,?with?overlapping@b@?*?array?elements?only?included?once.@b@?*?

The?order?of?elements?in?the?original?arrays?is?preserved@b@?*?(with?the?exception?of?overlapping?elements,?which?are?only@b@?*?included?on?their?first?occurrence).@b@?*?@param?array1?the?first?array?(can?be?{@code?null})@b@?*?@param?array2?the?second?array?(can?be?{@code?null})@b@?*?@return?the?new?array?({@code?null}?if?both?given?arrays?were?{@code?null})@b@?*/@b@public?static?String[]?mergeStringArrays(String[]?array1,?String[]?array2)?{@b@if?(ObjectUtils.isEmpty(array1))?{@b@return?array2;@b@}@b@if?(ObjectUtils.isEmpty(array2))?{@b@return?array1;@b@}@b@List?result?=?new?ArrayList();@b@result.addAll(Arrays.asList(array1));@b@for?(String?str?:?array2)?{@b@if?(!result.contains(str))?{@b@result.add(str);@b@}@b@}@b@return?toStringArray(result);@b@}@b@@b@/**@b@?*?Turn?given?source?String?array?into?sorted?array.@b@?*?@param?array?the?source?array@b@?*?@return?the?sorted?array?(never?{@code?null})@b@?*/@b@public?static?String[]?sortStringArray(String[]?array)?{@b@if?(ObjectUtils.isEmpty(array))?{@b@return?new?String[0];@b@}@b@Arrays.sort(array);@b@return?array;@b@}@b@@b@/**@b@?*?Copy?the?given?Collection?into?a?String?array.@b@?*?The?Collection?must?contain?String?elements?only.@b@?*?@param?collection?the?Collection?to?copy@b@?*?@return?the?String?array?({@code?null}?if?the?passed-in@b@?*?Collection?was?{@code?null})@b@?*/@b@public?static?String[]?toStringArray(Collection?collection)?{@b@if?(collection?==?null)?{@b@return?null;@b@}@b@return?collection.toArray(new?String[collection.size()]);@b@}@b@@b@/**@b@?*?Copy?the?given?Enumeration?into?a?String?array.@b@?*?The?Enumeration?must?contain?String?elements?only.@b@?*?@param?enumeration?the?Enumeration?to?copy@b@?*?@return?the?String?array?({@code?null}?if?the?passed-in@b@?*?Enumeration?was?{@code?null})@b@?*/@b@public?static?String[]?toStringArray(Enumeration?enumeration)?{@b@if?(enumeration?==?null)?{@b@return?null;@b@}@b@List?list?=?Collections.list(enumeration);@b@return?list.toArray(new?String[list.size()]);@b@}@b@@b@/**@b@?*?Trim?the?elements?of?the?given?String?array,@b@?*?calling?{@code?String.trim()}?on?each?of?them.@b@?*?@param?array?the?original?String?array@b@?*?@return?the?resulting?array?(of?the?same?size)?with?trimmed?elements@b@?*/@b@public?static?String[]?trimArrayElements(String[]?array)?{@b@if?(ObjectUtils.isEmpty(array))?{@b@return?new?String[0];@b@}@b@String[]?result?=?new?String[array.length];@b@for?(int?i?=?0;?i??set?=?new?TreeSet();@b@for?(String?element?:?array)?{@b@set.add(element);@b@}@b@return?toStringArray(set);@b@}@b@@b@/**@b@?*?Split?a?String?at?the?first?occurrence?of?the?delimiter.@b@?*?Does?not?include?the?delimiter?in?the?result.@b@?*?@param?toSplit?the?string?to?split@b@?*?@param?delimiter?to?split?the?string?up?with@b@?*?@return?a?two?element?array?with?index?0?being?before?the?delimiter,?and@b@?*?index?1?being?after?the?delimiter?(neither?element?includes?the?delimiter);@b@?*?or?{@code?null}?if?the?delimiter?wasn't?found?in?the?given?input?String@b@?*/@b@public?static?String[]?split(String?toSplit,?String?delimiter)?{@b@if?(!hasLength(toSplit)?||?!hasLength(delimiter))?{@b@return?null;@b@}@b@int?offset?=?toSplit.indexOf(delimiter);@b@if?(offset?Will?trim?both?the?key?and?value?before?adding?them?to?the@b@?*?{@code?Properties}?instance.@b@?*?@param?array?the?array?to?process@b@?*?@param?delimiter?to?split?each?element?using?(typically?the?equals?symbol)@b@?*?@return?a?{@code?Properties}?instance?representing?the?array?contents,@b@?*?or?{@code?null}?if?the?array?to?process?was?null?or?empty@b@?*/@b@public?static?Properties?splitArrayElementsIntoProperties(String[]?array,?String?delimiter)?{@b@return?splitArrayElementsIntoProperties(array,?delimiter,?null);@b@}@b@@b@/**@b@?*?Take?an?array?Strings?and?split?each?element?based?on?the?given?delimiter.@b@?*?A?{@code?Properties}?instance?is?then?generated,?with?the?left?of?the@b@?*?delimiter?providing?the?key,?and?the?right?of?the?delimiter?providing?the?value.@b@?*?

Will?trim?both?the?key?and?value?before?adding?them?to?the@b@?*?{@code?Properties}?instance.@b@?*?@param?array?the?array?to?process@b@?*?@param?delimiter?to?split?each?element?using?(typically?the?equals?symbol)@b@?*?@param?charsToDelete?one?or?more?characters?to?remove?from?each?element@b@?*?prior?to?attempting?the?split?operation?(typically?the?quotation?mark@b@?*?symbol),?or?{@code?null}?if?no?removal?should?occur@b@?*?@return?a?{@code?Properties}?instance?representing?the?array?contents,@b@?*?or?{@code?null}?if?the?array?to?process?was?{@code?null}?or?empty@b@?*/@b@public?static?Properties?splitArrayElementsIntoProperties(@b@String[]?array,?String?delimiter,?String?charsToDelete)?{@b@@b@if?(ObjectUtils.isEmpty(array))?{@b@return?null;@b@}@b@Properties?result?=?new?Properties();@b@for?(String?element?:?array)?{@b@if?(charsToDelete?!=?null)?{@b@element?=?deleteAny(element,?charsToDelete);@b@}@b@String[]?splittedElement?=?split(element,?delimiter);@b@if?(splittedElement?==?null)?{@b@continue;@b@}@b@result.setProperty(splittedElement[0].trim(),?splittedElement[1].trim());@b@}@b@return?result;@b@}@b@@b@/**@b@?*?Tokenize?the?given?String?into?a?String?array?via?a?StringTokenizer.@b@?*?Trims?tokens?and?omits?empty?tokens.@b@?*?

The?given?delimiters?string?is?supposed?to?consist?of?any?number?of@b@?*?delimiter?characters.?Each?of?those?characters?can?be?used?to?separate@b@?*?tokens.?A?delimiter?is?always?a?single?character;?for?multi-character@b@?*?delimiters,?consider?using?{@code?delimitedListToStringArray}@b@?*?@param?str?the?String?to?tokenize@b@?*?@param?delimiters?the?delimiter?characters,?assembled?as?String@b@?*?(each?of?those?characters?is?individually?considered?as?delimiter).@b@?*?@return?an?array?of?the?tokens@b@?*?@see?java.util.StringTokenizer@b@?*?@see?String#trim()@b@?*?@see?#delimitedListToStringArray@b@?*/@b@public?static?String[]?tokenizeToStringArray(String?str,?String?delimiters)?{@b@return?tokenizeToStringArray(str,?delimiters,?true,?true);@b@}@b@@b@/**@b@?*?Tokenize?the?given?String?into?a?String?array?via?a?StringTokenizer.@b@?*?

The?given?delimiters?string?is?supposed?to?consist?of?any?number?of@b@?*?delimiter?characters.?Each?of?those?characters?can?be?used?to?separate@b@?*?tokens.?A?delimiter?is?always?a?single?character;?for?multi-character@b@?*?delimiters,?consider?using?{@code?delimitedListToStringArray}@b@?*?@param?str?the?String?to?tokenize@b@?*?@param?delimiters?the?delimiter?characters,?assembled?as?String@b@?*?(each?of?those?characters?is?individually?considered?as?delimiter)@b@?*?@param?trimTokens?trim?the?tokens?via?String's?{@code?trim}@b@?*?@param?ignoreEmptyTokens?omit?empty?tokens?from?the?result?array@b@?*?(only?applies?to?tokens?that?are?empty?after?trimming;?StringTokenizer@b@?*?will?not?consider?subsequent?delimiters?as?token?in?the?first?place).@b@?*?@return?an?array?of?the?tokens?({@code?null}?if?the?input?String@b@?*?was?{@code?null})@b@?*?@see?java.util.StringTokenizer@b@?*?@see?String#trim()@b@?*?@see?#delimitedListToStringArray@b@?*/@b@public?static?String[]?tokenizeToStringArray(@b@String?str,?String?delimiters,?boolean?trimTokens,?boolean?ignoreEmptyTokens)?{@b@@b@if?(str?==?null)?{@b@return?null;@b@}@b@StringTokenizer?st?=?new?StringTokenizer(str,?delimiters);@b@List?tokens?=?new?ArrayList();@b@while?(st.hasMoreTokens())?{@b@String?token?=?st.nextToken();@b@if?(trimTokens)?{@b@token?=?token.trim();@b@}@b@if?(!ignoreEmptyTokens?||?token.length()?>?0)?{@b@tokens.add(token);@b@}@b@}@b@return?toStringArray(tokens);@b@}@b@@b@/**@b@?*?Take?a?String?which?is?a?delimited?list?and?convert?it?to?a?String?array.@b@?*?

A?single?delimiter?can?consists?of?more?than?one?character:?It?will?still@b@?*?be?considered?as?single?delimiter?string,?rather?than?as?bunch?of?potential@b@?*?delimiter?characters?-?in?contrast?to?{@code?tokenizeToStringArray}.@b@?*?@param?str?the?input?String@b@?*?@param?delimiter?the?delimiter?between?elements?(this?is?a?single?delimiter,@b@?*?rather?than?a?bunch?individual?delimiter?characters)@b@?*?@return?an?array?of?the?tokens?in?the?list@b@?*?@see?#tokenizeToStringArray@b@?*/@b@public?static?String[]?delimitedListToStringArray(String?str,?String?delimiter)?{@b@return?delimitedListToStringArray(str,?delimiter,?null);@b@}@b@@b@/**@b@?*?Take?a?String?which?is?a?delimited?list?and?convert?it?to?a?String?array.@b@?*?

A?single?delimiter?can?consists?of?more?than?one?character:?It?will?still@b@?*?be?considered?as?single?delimiter?string,?rather?than?as?bunch?of?potential@b@?*?delimiter?characters?-?in?contrast?to?{@code?tokenizeToStringArray}.@b@?*?@param?str?the?input?String@b@?*?@param?delimiter?the?delimiter?between?elements?(this?is?a?single?delimiter,@b@?*?rather?than?a?bunch?individual?delimiter?characters)@b@?*?@param?charsToDelete?a?set?of?characters?to?delete.?Useful?for?deleting?unwanted@b@?*?line?breaks:?e.g.?"\r\n\f"?will?delete?all?new?lines?and?line?feeds?in?a?String.@b@?*?@return?an?array?of?the?tokens?in?the?list@b@?*?@see?#tokenizeToStringArray@b@?*/@b@public?static?String[]?delimitedListToStringArray(String?str,?String?delimiter,?String?charsToDelete)?{@b@if?(str?==?null)?{@b@return?new?String[0];@b@}@b@if?(delimiter?==?null)?{@b@return?new?String[]?{str};@b@}@b@List?result?=?new?ArrayList();@b@if?("".equals(delimiter))?{@b@for?(int?i?=?0;?i??0?&&?pos?<=?str.length())?{@b@//?Add?rest?of?String,?but?not?in?case?of?empty?input.@b@result.add(deleteAny(str.substring(pos),?charsToDelete));@b@}@b@}@b@return?toStringArray(result);@b@}@b@@b@/**@b@?*?Convert?a?CSV?list?into?an?array?of?Strings.@b@?*?@param?str?the?input?String@b@?*?@return?an?array?of?Strings,?or?the?empty?array?in?case?of?empty?input@b@?*/@b@public?static?String[]?commaDelimitedListToStringArray(String?str)?{@b@return?delimitedListToStringArray(str,?",");@b@}@b@@b@/**@b@?*?Convenience?method?to?convert?a?CSV?string?list?to?a?set.@b@?*?Note?that?this?will?suppress?duplicates.@b@?*?@param?str?the?input?String@b@?*?@return?a?Set?of?String?entries?in?the?list@b@?*/@b@public?static?Set?commaDelimitedListToSet(String?str)?{@b@Set?set?=?new?TreeSet();@b@String[]?tokens?=?commaDelimitedListToStringArray(str);@b@for?(String?token?:?tokens)?{@b@set.add(token);@b@}@b@return?set;@b@}@b@@b@/**@b@?*?Convenience?method?to?return?a?Collection?as?a?delimited?(e.g.?CSV)@b@?*?String.?E.g.?useful?for?{@code?toString()}?implementations.@b@?*?@param?coll?the?Collection?to?display@b@?*?@param?delim?the?delimiter?to?use?(probably?a?",")@b@?*?@param?prefix?the?String?to?start?each?element?with@b@?*?@param?suffix?the?String?to?end?each?element?with@b@?*?@return?the?delimited?String@b@?*/@b@public?static?String?collectionToDelimitedString(Collection>?coll,?String?delim,?String?prefix,?String?suffix)?{@b@if?(CollectionUtils.isEmpty(coll))?{@b@return?"";@b@}@b@StringBuilder?sb?=?new?StringBuilder();@b@Iterator>?it?=?coll.iterator();@b@while?(it.hasNext())?{@b@sb.append(prefix).append(it.next()).append(suffix);@b@if?(it.hasNext())?{@b@sb.append(delim);@b@}@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Convenience?method?to?return?a?Collection?as?a?delimited?(e.g.?CSV)@b@?*?String.?E.g.?useful?for?{@code?toString()}?implementations.@b@?*?@param?coll?the?Collection?to?display@b@?*?@param?delim?the?delimiter?to?use?(probably?a?",")@b@?*?@return?the?delimited?String@b@?*/@b@public?static?String?collectionToDelimitedString(Collection>?coll,?String?delim)?{@b@return?collectionToDelimitedString(coll,?delim,?"",?"");@b@}@b@@b@/**@b@?*?Convenience?method?to?return?a?Collection?as?a?CSV?String.@b@?*?E.g.?useful?for?{@code?toString()}?implementations.@b@?*?@param?coll?the?Collection?to?display@b@?*?@return?the?delimited?String@b@?*/@b@public?static?String?collectionToCommaDelimitedString(Collection>?coll)?{@b@return?collectionToDelimitedString(coll,?",");@b@}@b@@b@/**@b@?*?Convenience?method?to?return?a?String?array?as?a?delimited?(e.g.?CSV)@b@?*?String.?E.g.?useful?for?{@code?toString()}?implementations.@b@?*?@param?arr?the?array?to?display@b@?*?@param?delim?the?delimiter?to?use?(probably?a?",")@b@?*?@return?the?delimited?String@b@?*/@b@public?static?String?arrayToDelimitedString(Object[]?arr,?String?delim)?{@b@if?(ObjectUtils.isEmpty(arr))?{@b@return?"";@b@}@b@if?(arr.length?==?1)?{@b@return?ObjectUtils.nullSafeToString(arr[0]);@b@}@b@StringBuilder?sb?=?new?StringBuilder();@b@for?(int?i?=?0;?i??0)?{@b@sb.append(delim);@b@}@b@sb.append(arr[i]);@b@}@b@return?sb.toString();@b@}@b@@b@/**@b@?*?Convenience?method?to?return?a?String?array?as?a?CSV?String.@b@?*?E.g.?useful?for?{@code?toString()}?implementations.@b@?*?@param?arr?the?array?to?display@b@?*?@return?the?delimited?String@b@?*/@b@public?static?String?arrayToCommaDelimitedString(Object[]?arr)?{@b@return?arrayToDelimitedString(arr,?",");@b@}@b@}

總結(jié)

以上是生活随笔為你收集整理的spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久香蕉国产精品麻豆粉嫩av | 少妇自拍av| 麻豆视频成人 | 国产999在线观看 | 91久久精品一区二区三区 | 国产直播av | 日韩中文字幕亚洲一区二区va在线 | 激情五月***国产精品 | 精品国产乱码久久久久久天美 | 国产激情久久久 | 91麻豆精品国产午夜天堂 | 亚洲电影黄色 | 91九色视频在线播放 | 特级西西444www大精品视频免费看 | 国产中文字幕在线观看 | 99热精品在线观看 | 国产精品久久久久久久久久不蜜月 | 在线韩国电影免费观影完整版 | 欧美成年人在线观看 | 操操操av | 美女在线观看网站 | 久久看视频 | 天堂网中文在线 | 国产一区二区观看 | 激情五月六月婷婷 | 免费欧美 | 国产精品久久久久一区二区三区共 | 99久久精品免费看国产免费软件 | 婷婷六月丁香激情 | 在线一级片 | 中文字幕在线网 | 亚洲精品视频在 | 国产成人一区二区三区 | 99精品偷拍视频一区二区三区 | .国产精品成人自产拍在线观看6 | 午夜视频在线观看一区二区三区 | 国产精品久久久久久久久免费 | 狠狠久久伊人 | 黄色91免费观看 | 日本韩国在线不卡 | 黄色a大片| 国产精品毛片网 | 久久婷亚洲五月一区天天躁 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 久久婷婷五月综合色丁香 | 久久久久在线 | 色欲综合视频天天天 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久久久精品影视 | 狠狠狠色丁香综合久久天下网 | 色久五月| 中文字幕在线观看一区 | 天天干视频在线 | 久久理伦片 | 国产精品免费一区二区三区在线观看 | 丁香花在线观看免费完整版视频 | 成人在线免费视频观看 | 性色av免费在线观看 | 黄色av免费看 | 亚洲特级毛片 | 国产高清视频免费 | 狠狠干免费 | 成人国产电影在线观看 | 在线欧美最极品的av | 最新免费av在线 | 国产又粗又猛又黄又爽的视频 | 超碰在线国产 | 在线久热 | av在线电影网站 | 99国产一区| 亚洲电影av在线 | 欧美日韩综合在线 | 99热官网| 久久久精品网 | 久久久91精品国产 | 国产日韩亚洲 | 久久久www成人免费精品张筱雨 | 国产在线播放一区二区 | 国产专区精品视频 | 日韩av片免费在线观看 | www.狠狠干| 一区二区三区久久精品 | 国产视频999| 91探花在线视频 | 中文字幕在线观看第一页 | 91资源在线| 精品人人人人 | 99视屏 | 99热这里只有精品免费 | 手机看片中文字幕 | 国产特级毛片aaaaaa高清 | 天堂资源在线观看视频 | 欧美一级久久久 | 在线免费av播放 | 久久伊人八月婷婷综合激情 | 免费麻豆网站 | 九九九九九国产 | 亚洲精品午夜久久久久久久久久久 | 亚洲永久av| 成人免费视频视频在线观看 免费 | 国产精品美女久久久久久免费 | 91久久黄色 | 国产又粗又硬又长又爽的视频 | 黄色成人小视频 | 亚洲精品午夜一区人人爽 | 免费日韩一区二区 | 免费在线色电影 | 久久99久久精品国产 | 伊人永久在线 | 天天鲁天天干天天射 | 欧美精品在线视频 | 蜜臀aⅴ国产精品久久久国产 | 国产第一页在线观看 | 黄色网中文字幕 | 久草在线欧美 | 午夜久久福利影院 | 欧美日韩国产精品一区二区三区 | 久久毛片网 | 精品久久久久一区二区国产 | 激情久久影院 | 色婷婷综合久久久久中文字幕1 | 国产黄av | 国产成人精品999在线观看 | 国产欧美在线一区二区三区 | 精品免费观看 | 福利视频一区二区 | 九九热精品视频在线观看 | 日韩在线首页 | 日韩在线观看视频网站 | 日韩高清dvd | 九色免费视频 | 五月天久久综合网 | 午夜电影av | 精品久久久久久电影 | av三级av| 国产黄色免费电影 | 欧美色精品天天在线观看视频 | 久久国产精品免费一区 | 一级黄色片在线 | 五月婷婷六月综合 | 国产精品视频在线观看 | 中文字幕有码在线 | 国产精品一区二区久久精品爱微奶 | 日韩丝袜在线观看 | av成人免费在线观看 | 六月婷婷久香在线视频 | www.99热精品 | 久草亚洲视频 | 久久人人爽人人爽人人片av免费 | 91视频一8mav | 欧美日韩亚洲在线 | 日韩精品视频免费看 | 最新日韩中文字幕 | 免费在线观看一区二区三区 | a黄色一级 | 中文字幕第一页在线视频 | 成人av直播 | 亚洲精品久久久蜜桃直播 | 中文字幕中文字幕在线中文字幕三区 | av电影免费看 | 成人蜜桃视频 | 国产精品第72页 | 国产99久久九九精品免费 | 亚洲一级片av | 欧美日韩视频免费看 | 在线观看精品视频 | 国产玖玖在线 | 国产亚洲视频在线 | 国产在线欧美在线 | 日韩三级免费 | 黄色网www| 亚洲精品动漫在线 | www色,com| 亚洲精选视频在线 | 国产精品久久久久久久久久久久久 | 久草91视频 | 狠狠操.com | 婷婷丁香在线 | 九九在线播放 | 日韩亚洲欧美中文字幕 | 国产成人一区二区三区在线观看 | 丁香激情五月婷婷 | 在线看片视频 | 亚洲精品福利在线观看 | av 一区二区三区四区 | 高潮久久久久久 | 99久久国产免费看 | a在线v| 国产成人av免费在线观看 | 麻豆国产露脸在线观看 | 狠狠干夜夜爽 | 国产美女精品 | 高清av免费一区中文字幕 | 天无日天天操天天干 | 日韩高清三区 | 91视频麻豆视频 | 人人干免费| 久久精品成人 | 中文字幕一区二区三区乱码不卡 | 狠狠干狠狠色 | 国产精品自产拍在线观看 | 一区二区中文字幕在线观看 | 六月丁香社区 | 久久久黄色av | 成人黄色小视频 | 成人国产亚洲 | 西西人体www444 | 欧美三人交 | 国产精品国产毛片 | 久久久久久福利 | 久久久免费毛片 | 91福利视频免费 | 又黄又爽又湿又无遮挡的在线视频 | 久久人人爽 | 91探花国产综合在线精品 | 亚洲婷久久 | 国产精品粉嫩 | 成人小视频免费在线观看 | 日韩久久精品一区二区 | 在线va网站 | 在线免费看黄网站 | 99久久久成人国产精品 | 三级av黄色| 亚洲综合视频在线观看 | 国产在线观看网站 | 亚洲最新av网址 | 国产不卡精品 | 97精品国产97久久久久久免费 | 亚洲国产中文字幕在线 | 综合久久网站 | 六月久久婷婷 | 亚洲国产精品va在线看黑人动漫 | 精品在线小视频 | www激情久久 | 国模一二三区 | 国产黑丝一区二区三区 | 特级a老妇做爰全过程 | 操操操日日日 | 久久综合久久综合这里只有精品 | 91在线视频观看免费 | 国产成人av在线影院 | 99久久99久久 | 成人免费在线看片 | 毛片美女网站 | 亚洲精品视频免费观看 | 黄色小视频在线观看免费 | 久久精品一区二区三区国产主播 | 国产精品成人a免费观看 | 成人 亚洲 欧美 | 中文字幕免费看 | 免费观看视频黄 | 91精品久久久久久久久久久久久 | zzijzzij日本成熟少妇 | 欧美一二三区在线观看 | 日韩av一区在线观看 | 99综合久久 | 韩国视频一区二区三区 | 色婷婷狠狠五月综合天色拍 | 亚洲午夜小视频 | 日韩综合第一页 | 免费中文字幕在线观看 | 国产亚洲精品中文字幕 | 色视频成人在线观看免 | 国产精品黑丝在线观看 | 亚洲精品中文在线观看 | 成人免费视频观看 | 亚洲精品自拍 | 国产精品一区二区av影院萌芽 | 丁香婷婷综合网 | 正在播放一区 | 正在播放国产一区二区 | 韩日电影在线免费看 | 四虎永久国产精品 | 国产剧情一区 | 91精品免费 | 国产 日韩 中文字幕 | 中文字幕免费观看视频 | 亚洲黄色片一级 | 在线99| 欧美日韩国产在线精品 | 久久高清 | 日韩精品三区四区 | 久久久国产99久久国产一 | 一本一本久久aa综合精品 | 国产精品2019 | 91视频免费播放 | 亚洲成人国产 | 日韩久久精品一区二区 | 欧美日韩国产一区二区在线观看 | 人人爽人人片 | av丝袜在线| 欧美日韩xxxxx | 国产一级片观看 | 精品国产区 | 中文字幕乱偷在线 | 99精品视频在线看 | 九九在线播放 | 久久久精品免费观看 | 久久97久久 | 在线v片免费观看视频 | 成 人 黄 色 视频 免费观看 | 西西444www大胆无视频 | 美女在线黄 | 超碰在线观看99 | 亚洲精品在线一区二区三区 | 中文字幕av免费在线观看 | 久久久久欠精品国产毛片国产毛生 | 中文字幕一区二区三区四区久久 | 视频精品一区二区三区 | 性色av免费看| 黄色av网站在线免费观看 | 久久兔费看a级 | 久久国产影院 | 欧美十八 | 国产精品免费在线观看视频 | 久久手机免费视频 | 91精品一区二区三区蜜桃 | 免费观看全黄做爰大片国产 | 久久久久久久久久久国产精品 | 国产免费小视频 | 狠狠操夜夜 | 久久一级电影 | 操操操日日日干干干 | avsex| 成年人视频在线 | 亚洲精品乱码久久久一二三 | 毛片随便看 | 亚洲国产综合在线 | 欧美精品在线一区二区 | 久久久久久久久久久网 | 爱爱av网| 有码中文字幕在线观看 | 成人av影视 | 最近2019中文免费高清视频观看www99 | 视频二区在线 | 久久久久电影网站 | 在线观看视频亚洲 | 激情在线网站 | 亚洲.www| 亚洲成人黄色在线观看 | 在线播放日韩av | 国产视频一二区 | 欧美日韩国产精品久久 | 一区二区三区精品在线 | 日韩一级成人av | 国产精品精品国产色婷婷 | 青青网视频 | 国产黄色资源 | 狠狠干狠狠久久 | 国产精品人人做人人爽人人添 | 激情动态| 亚洲天堂网视频 | 一区二区亚洲精品 | 日韩视频一区二区三区在线播放免费观看 | 国产午夜亚洲精品 | 亚洲va欧美va国产va黑人 | 中文字幕日韩在线播放 | 国产精品无av码在线观看 | wwxxxx日本 | 日韩激情视频 | 国产视| 国产亚洲婷婷 | 亚洲免费资源 | 国产在线传媒 | 国产一级在线看 | a视频在线| 日韩欧美一二三 | 在线观看爱爱视频 | 国产成人三级在线观看 | 日韩欧美一区二区三区免费观看 | 99视频免费看 | 日韩艹| 国产视频每日更新 | 国产精品视频你懂的 | 91精品视频免费看 | 久久综合色一综合色88 | 亚洲一级片在线看 | 久久国产精品一区二区三区四区 | 精品视频资源站 | 日韩精品一区二区三区三炮视频 | 国产在线观看免费观看 | 青春草免费视频 | 美女黄网久久 | 天天夜夜亚洲 | 欧美日韩aa | 久久免费激情视频 | 国产成人一区二区精品非洲 | 永久免费精品视频 | 国产精品九九九九九 | 97视频在线观看网址 | 夜夜躁狠狠躁日日躁 | 色99色| 999视频网站 | 日韩理论 | 午夜久久 | 激情伊人五月天久久综合 | 狠狠干美女 | 999电影免费在线观看2020 | 91精品对白一区国产伦 | 免费在线激情视频 | 六月婷色 | 97品白浆高清久久久久久 | 精品久久久99 | wwwwwww黄| 一本一本久久a久久精品综合小说 | 国产高清在线 | 日日夜夜综合网 | 国产视频日本 | 日日夜夜精品 | 国产麻豆精品95视频 | 91高清在线 | 久久精品国产99 | 久久国产欧美日韩 | 草莓视频在线观看免费观看 | 美女福利视频 | 国产成人免费精品 | 一本—道久久a久久精品蜜桃 | 有码中文在线 | 日本mv大片欧洲mv大片 | 在线观看日韩精品视频 | 二区三区精品 | 999男人的天堂 | 久草视频在线资源 | 啪嗒啪嗒免费观看完整版 | 狠狠色狠狠色合久久伊人 | 久久婷婷色综合 | 日韩午夜在线观看 | 国产精品第52页 | 97超碰在线久草超碰在线观看 | 久久久国产高清 | av高清免费| 天天干天天拍天天操天天拍 | 91超碰在线播放 | 久久精品韩国 | 精品美女久久久久 | 久久久久欧美精品 | 手机av观看| 国产精品久久亚洲 | 91精品人成在线观看 | 免费观看版 | 99精品久久只有精品 | 国模精品在线 | 国产精品福利无圣光在线一区 | 五月婷婷六月综合 | 激情综合网在线观看 | 亚洲不卡在线 | 国产精品嫩草影院123 | 日韩欧美第二页 | 极品美女被弄高潮视频网站 | 国产视频不卡 | 激情文学丁香 | 天天艹天天干天天 | 欧美久久久久久久久中文字幕 | 成人免费一区二区三区在线观看 | 中文字幕永久免费 | 黄色的视频 | 免费日韩高清 | 午夜三级福利 | 欧美日韩在线观看不卡 | 91色九色| 色综合久久88色综合天天6 | 999一区二区三区 | 免费精品国产va自在自线 | 黄色精品久久 | 国产小视频免费观看 | 亚洲一区二区视频在线播放 | 亚洲美女在线一区 | 午夜精品久久久99热福利 | 欧美一级大片在线观看 | 日日夜夜天天操 | 久久久福利视频 | 天天色天天射天天干 | 91黄站| 免费黄色在线网址 | 天海翼一区二区三区免费 | 懂色av一区二区三区蜜臀 | 天天射天天 | 国产福利一区在线观看 | a视频在线观看免费 | 色婷婷电影 | 国产麻豆剧传媒免费观看 | www.黄色在线 | 久久精久久精 | 三级性生活视频 | 手机在线看永久av片免费 | 一区二区视频在线观看免费 | 成人aⅴ视频 | 亚洲永久国产精品 | 91高清免费观看 | 国产精品自产拍在线观看蜜 | 亚洲狠狠丁香婷婷综合久久久 | 国产成人精品一区在线 | 99av在线视频 | 国产艹b视频 | 91精品久久久久久久久久久久久 | 色橹橹欧美在线观看视频高清 | 亚洲一区免费在线 | 久久xx视频 | 国内一区二区视频 | 免费在线观看av的网站 | 伊人狠狠色丁香婷婷综合 | 免费av免费观看 | 黄色av电影在线观看 | 亚洲午夜小视频 | 国产91精品看黄网站在线观看动漫 | 久久超级碰视频 | 日日天天狠狠 | 欧美一级大片在线观看 | 天天操天天射天天 | 亚洲视频大全 | 国产91aaa | 欧美老人xxxx18 | 精品一区二区三区电影 | 黄色小视频在线观看免费 | 狠狠色丁香婷婷综合久小说久 | 超级碰碰免费视频 | 国产视频一区二区在线观看 | 婷婷去俺也去六月色 | 月丁香婷婷 | 国产一区二区三精品久久久无广告 | 久久久久国产视频 | 国产精品自产拍在线观看中文 | 国产在线国产 | 日韩伦理片hd | 久精品视频在线 | 久久久久久毛片精品免费不卡 | 日韩91在线 | 人人舔人人爽 | 九九热久久免费视频 | 国产中文字幕在线视频 | 亚洲精品久久久蜜桃 | 国产一级免费播放 | 亚洲一区视频在线播放 | 欧美了一区在线观看 | 伊人天堂av | 欧美精品久久久久久 | 奇米影视777四色米奇影院 | 亚洲综合小说 | 99精品久久久久久久久久综合 | 久久综合加勒比 | 亚洲国产日韩欧美 | 黄a在线看 | 午夜免费电影院 | 天天射天天干天天 | 韩国av免费 | 超碰日韩 | 亚洲精品国产成人av在线 | 人人爽网站 | 欧美成人999| 国产高清专区 | 99欧美 | 国产小视频91 | 中文字幕在线观看第一页 | 婷婷婷国产在线视频 | 色全色在线资源网 | 免费看黄在线看 | 91综合久久一区二区 | 91香蕉视频在线 | 国产高清不卡在线 | 国产视频亚洲视频 | 国产在线观 | 欧美国产91 | 日韩精品一区二区三区不卡 | 亚洲激情 在线 | 久久免费av| 又黄又爽又刺激视频 | 日产乱码一二三区别免费 | 99免费| 狠狠撸电影 | 亚洲色图激情文学 | 亚洲视频网站在线观看 | 日日爽天天操 | 国产一区在线不卡 | 国产亚洲一区二区三区 | 国产精品刺激对白麻豆99 | 国产精品永久久久久久久久久 | 一区二区三区免费网站 | 中文字幕在线免费观看 | 97人人视频 | 日韩精品视频免费在线观看 | 国产黄| 免费看黄电影 | 国产日韩精品一区二区三区在线 | 欧美精品中文在线免费观看 | 欧美日韩亚洲国产一区 | 国产亚洲视频中文字幕视频 | 一二三区在线 | 天天玩天天干天天操 | 欧美日韩国产综合一区二区 | 亚洲美女视频在线观看 | 欧美激情一区不卡 | 六月丁香激情综合色啪小说 | 综合色伊人 | 夜夜爽88888免费视频4848 | 久久国产精品视频免费看 | 欧美日韩国产页 | 在线免费日韩 | 狠狠躁日日躁 | 欧美一级片在线免费观看 | 在线观看亚洲国产精品 | 美女av在线免费 | 欧美日韩中文在线 | 伊人黄| 日韩精品中文字幕久久臀 | 五月综合网 | 99视频一区| 亚洲欧美日韩中文在线 | 国产区精品区 | 中日韩免费视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲乱亚洲乱亚洲 | www.久久com| 国产一区二区在线播放视频 | 麻豆视频国产精品 | 色av男人的天堂免费在线 | 色多多在线观看 | 久久精品久久精品 | zzijzzij亚洲日本少妇熟睡 | 在线观看黄色大片 | 最近最新最好看中文视频 | 亚洲最大av网 | 中文字幕一区在线观看视频 | 天天在线视频色 | 天天综合网久久 | 91九色网址| 日韩精品在线免费观看 | 色婷婷狠狠| 久久久久久久久久伊人 | 亚洲精品视频 | 国产原创在线 | 国产偷国产偷亚洲清高 | 中文字幕在线观看第三页 | 亚洲精选视频在线 | 99热国产在线观看 | 99热在线观看 | 97色综合| 天天操天天操天天操天天操天天操天天操 | 中文字幕在线乱 | 久久99国产精品 | 日韩高清三区 | 精品国产乱码久久久久 | 国产精品成久久久久三级 | 麻豆影视网站 | 米奇狠狠狠888 | 高潮久久久久久 | 精品一区91 | 亚洲欧洲中文日韩久久av乱码 | 亚洲精品国产成人 | 99视频在线免费播放 | 天天色天天搞 | 国产一区二区高清视频 | 成人免费观看av | 奇米四色影狠狠爱7777 | 国产精品成人一区二区三区吃奶 | 五月婷婷在线观看视频 | 欧美日韩精品综合 | 狠狠的日日 | 欧美无极色 | 久久精视频 | 69久久99精品久久久久婷婷 | 天天综合91 | 国产精品久久麻豆 | 欧美日韩免费在线视频 | 免费观看视频的网站 | 最近中文字幕 | 九九久久影院 | 精品久久久久久一区二区里番 | 99精品亚洲 | 国产色一区 | av久久在线| 久久激情小说 | 久久久精品欧美 | 久久这里只有精品视频首页 | 国产精品18久久久久白浆 | 五月综合 | 国产精品岛国久久久久久久久红粉 | 51精品国自产在线 | 在线观看黄污 | avav片| 中文字幕一区二区在线播放 | 久久看视频 | 97**国产露脸精品国产 | 日韩成人不卡 | 国产精品久久久久久久久久久久午夜片 | 四虎在线永久免费观看 | 有码中文字幕在线观看 | 免费成人黄色片 | 久久午夜电影院 | 69久久久 | 婷婷在线色 | 亚洲最新视频在线 | 99精品视频免费全部在线 | 久久在线影院 | 在线成人短视频 | 97精品国产97久久久久久 | 97超碰资源网 | 欧美贵妇性狂欢 | 精品一区二区在线免费观看 | av免费观看网址 | 欧美激情精品久久久久久免费印度 | 激情五月婷婷综合网 | 女人高潮特级毛片 | 国产成人精品午夜在线播放 | 国产精品久久久久久久久久ktv | 国产精品2020 | 丁香久久婷婷 | 日韩一级电影在线观看 | 亚洲综合激情 | 国产在线精品视频 | 久久成人午夜视频 | 亚洲综合在线发布 | 欧美另类高清 | 人人草在线视频 | 天天插天天狠天天透 | 高清一区二区 | 成人在线观看资源 | 99久久99| 中文字幕电影一区 | 国产精品女同一区二区三区久久夜 | 91看片在线看片 | 国产最新在线视频 | 久色婷婷| 日本大片免费观看在线 | 99r国产精品| 国产精品久久久久久久久费观看 | 亚洲成人xxx | 日韩在线电影 | 久久国产精品免费观看 | 久久人人精 | 午夜精品成人一区二区三区 | 国产自在线| 99精品久久99久久久久 | 成片人卡1卡2卡3手机免费看 | 69人人| 中文字幕日韩电影 | 久久成人精品电影 | 97精品超碰一区二区三区 | 久久精品导航 | 国产精品三级视频 | 日日干精品 | 成人精品视频 | 91人人澡人人爽人人精品 | 永久免费在线 | 亚洲最大在线视频 | 九九久久国产精品 | 欧美一级性生活视频 | 天堂av网址 | 日韩av中文在线 | 中文字幕免费高清av | 一级a性色生活片久久毛片波多野 | 日韩欧美99 | 国产精品一区二区免费看 | www.久久视频 | 亚洲精品视频在线观看免费 | 500部大龄熟乱视频使用方法 | 黄色av一级片 | 日韩在线视频观看免费 | 久久国产免费视频 | 国产精品永久免费 | 四虎永久免费网站 | 97国产小视频 | 干干干操操操 | 亚洲精品在线资源 | 中文字幕中文字幕在线中文字幕三区 | 中文字幕视频网站 | 久久综合狠狠综合久久激情 | 午夜精品福利影院 | 日批视频 | 久久久久国产精品午夜一区 | 1024手机在线看 | 国产99久久久欧美黑人 | 99精品国产一区二区三区不卡 | 69视频在线 | 99精品在线免费观看 | 99爱这里只有精品 | 狠狠操狠狠干2017 | 久久久久久蜜av免费网站 | av字幕在线 | 最新国产中文字幕 | 国产精品成人一区二区三区 | 日韩性xxxx| 久久66热这里只有精品 | 高清免费在线视频 | 久久综合给合久久狠狠色 | 国产一级片观看 | 日韩av女优视频 | 免费成人黄色片 | 久久久久久久影院 | 亚洲精品动漫在线 | 中文字幕日韩伦理 | 午夜av在线播放 | 亚洲男男gaygay无套同网址 | 久久免费av | 国产精品久久免费看 | 欧美成人性网 | 久久理论电影 | 久久免费大片 | 国产成人av | 国产品久精国精产拍 | 亚洲成a人片在线观看网站口工 | 96精品视频| 久久久亚洲麻豆日韩精品一区三区 | 成年人免费电影 | 五月天亚洲综合 | 91在线视频导航 | 91香蕉视频好色先生 | 91精品看片| www.五月婷婷.com | 日韩有码中文字幕在线 | 麻豆一精品传二传媒短视频 | 亚洲播放一区 | 美女网站在线免费观看 | 国产精品日韩欧美 | 欧美日韩国产精品一区二区亚洲 | 亚洲国产网址 | 国内精品在线看 | 免费成人黄色av | 黄色国产高清 | 久久天堂精品视频 | 日韩手机在线观看 | 国产不卡一二三区 | 欧美成人精品xxx | 国产我不卡 | 91国内在线 | 最近中文字幕大全中文字幕免费 | 亚洲综合在线视频 | 69久久久 | 国产三级av在线 | 97成人资源站 | 久草在线观| 日韩视频免费 | 五月婷婷视频 | 日韩欧美一区二区不卡 | 久久国产精品久久国产精品 | 91精品国产高清 | 五月婷婷一区 | 色婷婷亚洲| 91成人久久| 波多野结衣精品 | 久久久伊人网 | 国产99久久九九精品免费 | 激情综合啪啪 | 免费看色的网站 | 亚洲资源在线网 | 亚洲资源 | 狠狠干狠狠艹 | 日韩电影中文字幕 | 色网站在线看 | 激情综合网色播五月 | 日韩啪视频 | 免费在线播放av电影 | 国产一区二区在线免费视频 | 亚洲一级黄色av | 天天干天天想 | 国产精品美女免费 | 91成人精品一区在线播放 | 探花视频免费观看 | a黄色大片 | 日韩久久精品 | 精品久操| 91大神精品视频在线观看 | 91综合视频在线观看 | 狠狠躁夜夜躁人人爽视频 | 亚洲精品免费视频 | 国产精品va视频 | 精品亚洲男同gayvideo网站 | 99色免费视频 | 久久久久久久久久国产精品 | 天天想夜夜操 | 黄色片网站av| av在线最新 | 在线观看日韩免费视频 | 亚洲小视频在线观看 | av一级片在线观看 | 免费网站观看www在线观看 | 91九色成人 | 香蕉久草在线 | 午夜国产影院 | 国产无套一区二区三区久久 | 中文字幕国语官网在线视频 | 在线看av的网址 | 在线观看精品一区 | 久久视精品 | 日韩在线视频线视频免费网站 | 91在线视频精品 | 日产乱码一二三区别在线 | 久久99在线观看 | 韩国一区视频 | av免费在线观看网站 | 91人人爽久久涩噜噜噜 | 日本久久久精品视频 | 久久精品一二三区白丝高潮 | 99999精品| 婷婷久久丁香 | 欧美一级在线观看视频 | 国产精品久久久久久久久久久久冷 | 久久久久久久久久久精 | 97精品国产97久久久久久免费 | 免费观看的黄色片 | 97精品超碰一区二区三区 | 91成人短视频在线观看 | 国产午夜精品一区二区三区在线观看 | 国产成人在线观看免费 | 丁香婷婷电影 | 亚洲最新合集 | 久久精品9 | 国产精品久久一卡二卡 | 精品国产中文字幕 | www黄色com | 在线看成人av | 免费十分钟| 欧美黄污视频 | 韩国av电影在线观看 | 久久久国产精品人人片99精片欧美一 | 欧美日韩另类在线观看 | 五月天高清欧美mv | 免费91麻豆精品国产自产在线观看 | 黄网在线免费观看 | 久久久综合香蕉尹人综合网 | 碰超在线97人人 | 亚洲高清视频在线观看 | 精品一区精品二区高清 | 久久精选 | 国产91全国探花系列在线播放 | 久草在线久草在线2 | 日韩网站一区二区 | 久久夜色精品国产欧美一区麻豆 | av在线免费观看不卡 | 久久精品视频免费 | 香蕉视频网址 | 日本精品久久 | 久久 亚洲视频 | 日韩欧美一区二区三区在线观看 | 日韩中文字幕在线观看 | 亚洲国产成人在线 | 成年人在线看片 | av在线之家电影网站 | 久日精品 | 亚洲成人免费在线 | 国产精品在线看 | 91色在线观看 | 69av久久 | 日韩欧美xxx | 黄网站免费大全入口 | 国产乱老熟视频网88av | 99精品系列 | 91污污| 亚洲综合成人专区片 | 99夜色| 91探花视频| 成人教育av| 亚洲免费成人 | 亚洲电影一区二区 | 97色婷婷成人综合在线观看 | 欧美美女视频在线观看 | www久久久 | 久草视频资源 | 精品国产区 | 香蕉影视app | 激情欧美网| 正在播放一区二区 | 国产在线欧美日韩 | 久草视频播放 | 91 中文字幕 | 国产一级性生活视频 | 日本在线观看一区二区三区 | 日韩高清网站 | 免费成人在线观看 | 狠狠插狠狠操 | 蜜桃传媒一区二区 | 亚洲六月丁香色婷婷综合久久 | 国产精品久久久久久影院 | 亚洲特级毛片 | 91大神dom调教在线观看 | 精品一区二区视频 | 国产精品video爽爽爽爽 | 中文字幕观看在线 | 最新中文字幕视频 | 久久久天堂 | 国产免费观看av | 国产成人99久久亚洲综合精品 | 97在线看片 | 66av99精品福利视频在线 | av高清一区二区三区 | 亚洲日本在线视频观看 | 波多野结衣综合网 | 成人av片在线观看 | 日韩色在线观看 | 日本精品va在线观看 | 国产成人精品综合久久久 | 日韩精品在线看 | 中文字幕在线资源 | 亚洲美女精品区人人人人 | 亚洲乱码久久 | 国产亚洲片 | 91一区二区三区久久久久国产乱 | 久久爽久久爽久久av东京爽 | 国产涩涩在线观看 |