上海市建设局官方网站,wordpress如何一栏显示,html5 企业 网站,宁波企业网站排名方法在“ 检查Java中的空#xff0c;空或仅空白字符串”一文中 #xff0c;我演示了Java生态系统#xff08;标准Java#xff0c; Guava #xff0c; Apache Commons Lang和Groovy #xff09;中用于检查字符串是否为空#xff0c;空或空白的常见方法。仅类似于C#xff03… 在“ 检查Java中的空空或仅空白字符串”一文中 我演示了Java生态系统标准Java Guava Apache Commons Lang和Groovy 中用于检查字符串是否为空空或空白的常见方法。仅类似于C通过String.IsNullOrWhiteSpace方法支持的内容。 我展示的方法之一是基于Guava的方法该方法利用了Guava类的Strings及其静态isNullOrEmptyString方法。 在本文中我将介绍捆绑在Strings类中的Guava的六个“与String有关的静态实用程序方法”所提供的其他有用的功能以使用String。 使用Guava的Strings类非常简单因为它的命名方法很好。 以下列表枚举了Strings类上的方法所有静态方法并在方法名称旁边简要说明了每个方法的作用这些描述是从Javadoc文档中借用或改编而成的。 Strings.isNullOrEmptyString “如果给定的字符串为null或为空字符串则返回true。” emptyToNullString 如果给定的字符串非空则返回它 nullToEmptyString 如果给定的字符串非空则返回它 padStartStringintchar 在提供的String 前面添加如有必要提供足够的char字符以使字符串达到指定的长度。 padEndStringintchar 附加到提供的String上如果需要提供足够的char字符使字符串达到指定的长度。 重复Stringint “返回由输入字符串的特定数量的串联副本组成的字符串。” isNullOrEmpty 番石榴的Strings.isEmptyOrNull字符串方法可以方便地构建简单和高度可读的条件语句检查String作用在说之前空或空String 。 如前所述我之前已经简要介绍了此方法 。 接下来显示此方法的另一个代码演示。 使用Strings.isNullOrEmptyString的代码示例 /*** Print to standard output a string message indicating whether the provided* String is null or empty or not null or empty. This method uses Guavas* Strings.isNullOrEmpty(String) method.* * param string String to be tested for null or empty.*/private static void printStringStatusNullOrEmpty(final String string){out.println( String string (Strings.isNullOrEmpty(string) ? IS : is NOT) null or empty.);}/*** Demonstrate Guava Strings.isNullOrEmpty(String) method on some example* Strings.*/public static void demoIsNullOrEmpty(){printHeader(Strings.isNullOrEmpty(String));printStringStatusNullOrEmpty(Dustin);printStringStatusNullOrEmpty(null);printStringStatusNullOrEmpty();} 运行以上代码的输出包含在下一个屏幕快照中。 它显示了将null或空String“传递给Strings.isNullOrEmpty(String)时返回true。 nullToEmpty和emptyToNull 很多时候您可能希望将空字符串视为空字符串或者在存在空字符串时希望呈现空值。 在此类情况下当需要在null和空String之间进行转换时以下代码段演示了Strings.nullToEmptyString和Strings.emptyToNullString的使用 。 nullToEmpty和emptyToNull /*** Print to standard output a simple message indicating the provided original* String and the provided result/output String.* * param originalString Original String.* param resultString Output or result String created by operation.* param operation The operation that acted upon the originalString to create* the resultString.*/private static void printOriginalAndResultStrings(final String originalString, final String resultString, final String operation){out.println(Passing originalString to operation produces resultString );}/** Demonstrate Guava Strings.emptyToNull() method on example Strings. */public static void demoEmptyToNull(){final String operation Strings.emptyToNull(String);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.emptyToNull(Dustin), operation);printOriginalAndResultStrings(null, Strings.emptyToNull(null), operation);printOriginalAndResultStrings(, Strings.emptyToNull(), operation);}/** Demonstrate Guava Strings.nullToEmpty() method on example Strings. */public static void demoNullToEmpty(){final String operation Strings.nullToEmpty(String);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.nullToEmpty(Dustin), operation);printOriginalAndResultStrings(null, Strings.nullToEmpty(null), operation);printOriginalAndResultStrings(, Strings.nullToEmpty(), operation);} 运行以上代码的输出显示在下一个屏幕快照中证明了这些方法可以按预期工作将null转换为空String或将空String转换为null。 padStart和padEnd 使用Java或任何其他语言处理String时另一种常见做法是使用指定字符将String填充到特定长度。 Guava通过其Strings.padStartStringintchar和Strings.padEndStringintchar方法轻松支持此功能如以下代码清单所示。 padStart和padEnd /*** Demonstrate Guava Strings.padStart(String,int,char) method on example* Strings.*/public static void demoPadStart(){final String operation Strings.padStart(String,int,char);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.padStart(Dustin, 10, _), operation);/** * Do NOT call Strings.padStart(String,int,char) on a null String:* Exception in thread main java.lang.NullPointerException* at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)* at com.google.common.base.Strings.padStart(Strings.java:97)*///printOriginalAndResultStrings(null, Strings.padStart(null, 10, _), operation);printOriginalAndResultStrings(, Strings.padStart(, 10, _), operation); }/*** Demonstrate Guava Strings.padEnd(String,int,char) method on example* Strings.*/public static void demoPadEnd(){final String operation Strings.padEnd(String,int,char);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.padEnd(Dustin, 10, _), operation);/*** Do NOT call Strings.padEnd(String,int,char) on a null String:* Exception in thread main java.lang.NullPointerException* at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)* at com.google.common.base.Strings.padEnd(Strings.java:129)*///printOriginalAndResultStrings(null, Strings.padEnd(null, 10, _), operation);printOriginalAndResultStrings(, Strings.padEnd(, 10, _), operation); } 执行时以上代码根据所调用的方法在提供的String之前或之后用下划线字符填充提供的String。 在这两种情况下字符串的长度都指定为十。 此输出显示在下一个屏幕快照中。 重复 Guava的Strings类支持的最后一种处理技术是能够轻松地将给定String重复指定次数的功能。 下一个代码清单和带有该代码输出的相应屏幕快照中对此进行了演示。 在此示例中提供的String重复了三次。 重复 /** Demonstrate Guava Strings.repeat(String,int) method on example Strings. */public static void demoRepeat(){final String operation Strings.repeat(String,int);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.repeat(Dustin, 3), operation);/*** Do NOT call Strings.repeat(String,int) on a null String:* Exception in thread main java.lang.NullPointerException* at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)* at com.google.common.base.Strings.repeat(Strings.java:153)*///printOriginalAndResultStrings(null, Strings.repeat(null, 3), operation);printOriginalAndResultStrings(, Strings.repeat(, 3), operation);} 包起来 上面的示例很简单因为Guava的Strings类易于使用。 现在列出了包含前面显示的演示代码的完整类。 GuavaStrings.java package dustin.examples;import com.google.common.base.Strings;
import static java.lang.System.out;/*** Simple demonstration of Guavas Strings class.* * author Dustin*/
public class GuavaStrings
{/*** Print to standard output a string message indicating whether the provided* String is null or empty or not null or empty. This method uses Guavas* Strings.isNullOrEmpty(String) method.* * param string String to be tested for null or empty.*/private static void printStringStatusNullOrEmpty(final String string){out.println( String string (Strings.isNullOrEmpty(string) ? IS : is NOT) null or empty.);}/*** Demonstrate Guava Strings.isNullOrEmpty(String) method on some example* Strings.*/public static void demoIsNullOrEmpty(){printHeader(Strings.isNullOrEmpty(String));printStringStatusNullOrEmpty(Dustin);printStringStatusNullOrEmpty(null);printStringStatusNullOrEmpty();}/*** Print to standard output a simple message indicating the provided original* String and the provided result/output String.* * param originalString Original String.* param resultString Output or result String created by operation.* param operation The operation that acted upon the originalString to create* the resultString.*/private static void printOriginalAndResultStrings(final String originalString, final String resultString, final String operation){out.println(Passing originalString to operation produces resultString );}/** Demonstrate Guava Strings.emptyToNull() method on example Strings. */public static void demoEmptyToNull(){final String operation Strings.emptyToNull(String);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.emptyToNull(Dustin), operation);printOriginalAndResultStrings(null, Strings.emptyToNull(null), operation);printOriginalAndResultStrings(, Strings.emptyToNull(), operation);}/** Demonstrate Guava Strings.nullToEmpty() method on example Strings. */public static void demoNullToEmpty(){final String operation Strings.nullToEmpty(String);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.nullToEmpty(Dustin), operation);printOriginalAndResultStrings(null, Strings.nullToEmpty(null), operation);printOriginalAndResultStrings(, Strings.nullToEmpty(), operation);}/*** Demonstrate Guava Strings.padStart(String,int,char) method on example* Strings.*/public static void demoPadStart(){final String operation Strings.padStart(String,int,char);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.padStart(Dustin, 10, _), operation);/** * Do NOT call Strings.padStart(String,int,char) on a null String:* Exception in thread main java.lang.NullPointerException* at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)* at com.google.common.base.Strings.padStart(Strings.java:97)*///printOriginalAndResultStrings(null, Strings.padStart(null, 10, _), operation);printOriginalAndResultStrings(, Strings.padStart(, 10, _), operation); }/*** Demonstrate Guava Strings.padEnd(String,int,char) method on example* Strings.*/public static void demoPadEnd(){final String operation Strings.padEnd(String,int,char);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.padEnd(Dustin, 10, _), operation);/*** Do NOT call Strings.padEnd(String,int,char) on a null String:* Exception in thread main java.lang.NullPointerException* at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)* at com.google.common.base.Strings.padEnd(Strings.java:129)*///printOriginalAndResultStrings(null, Strings.padEnd(null, 10, _), operation);printOriginalAndResultStrings(, Strings.padEnd(, 10, _), operation); }/** Demonstrate Guava Strings.repeat(String,int) method on example Strings. */public static void demoRepeat(){final String operation Strings.repeat(String,int);printHeader(operation);printOriginalAndResultStrings(Dustin, Strings.repeat(Dustin, 3), operation);/*** Do NOT call Strings.repeat(String,int) on a null String:* Exception in thread main java.lang.NullPointerException* at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)* at com.google.common.base.Strings.repeat(Strings.java:153)*///printOriginalAndResultStrings(null, Strings.repeat(null, 3), operation);printOriginalAndResultStrings(, Strings.repeat(, 3), operation);}/*** Print a separation header to standard output.* * param headerText Text to be placed in separation header.*/public static void printHeader(final String headerText){out.println(\n);out.println( headerText);out.println();}/*** Main function for demonstrating Guavas Strings class.* * param arguments Command-line arguments: none anticipated.*/public static void main(final String[] arguments){demoIsNullOrEmpty();demoEmptyToNull();demoNullToEmpty();demoPadStart();demoPadEnd();demoRepeat();}
} 填充和重复字符串的方法并不善于传递给它们的空字符串。 实际上向这三个方法传递null都会引发NullPointerException 。 有趣的是这些是Guava在其自己的代码中使用Preconditions类的更多示例。 结论 许多Java库和框架都提供String操作功能这些功能的名称类似于StringUtil 。 Guava的Strings类就是这样的一个例子它提供的方法可以使Java对String的操作更加轻松和简洁。 确实当我使用Guava的Strings方法时我感觉几乎就像在使用Groovy的GDK String优点 。 参考来自JCG合作伙伴 Dustin Marx的Guava的Strings类来自Inspired by Actual Events博客。 翻译自: https://www.javacodegeeks.com/2012/11/guavas-strings-class.html