介绍
在这个实验中,你将学习如何使用 Character.isWhitespace() 方法来检查一个字符在 Java 中是否为空白字符。你将探究该方法如何识别各种空白字符,包括空格、制表符、换行符和回车符。
通过实践练习,你将使用不同的字符(包括空格、制表符以及字母和数字等非空白字符)来测试该方法,以了解其在 Java 编程中的行为和实际应用。
使用 Character.isWhitespace() 方法
在这一步中,我们将探讨如何在 Java 中使用 Character.isWhitespace() 方法。该方法是 Character 类的一部分,用于判断给定的字符是否为空白字符。空白字符包括空格、制表符、换行符和回车符。
了解如何识别空白字符在许多编程任务中都很有用,例如解析文本、验证输入或格式化输出。
让我们创建一个新的 Java 文件来试验这个方法。
如果 WebIDE 尚未打开,请打开它。
在左侧的文件资源管理器中,确保你位于
~/project目录下。在
~/project目录的空白处右键单击,然后选择“新建文件”。将新文件命名为
WhitespaceChecker.java。在编辑器中打开
WhitespaceChecker.java文件。将以下 Java 代码复制并粘贴到编辑器中:
public class WhitespaceChecker { public static void main(String[] args) { char space = ' '; char tab = '\t'; char newline = '\n'; char letter = 'a'; char digit = '1'; System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space)); System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab)); System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline)); System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter)); System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit)); } }让我们来看看这段代码的新部分:
char space = ' ';:这行代码声明了一个名为space的char类型变量,并将空格字符赋值给它。char tab = '\t';:这行代码声明了一个名为tab的变量,并将制表符赋值给它。\t是一个表示制表符的转义序列。char newline = '\n';:这行代码声明了一个名为newline的变量,并将换行符赋值给它。\n是一个表示换行符的转义序列。char letter = 'a';:这行代码声明了一个名为letter的变量,并将字符 'a' 赋值给它。char digit = '1';:这行代码声明了一个名为digit的变量,并将字符 '1' 赋值给它。Character.isWhitespace(space):这是我们调用isWhitespace()方法的地方。我们将space字符作为参数传递给它,如果该字符是空白字符,它将返回true,否则返回false。我们对其他字符也进行同样的操作。System.out.println(...):我们使用println方法将isWhitespace()方法调用的结果与描述性消息一起打印出来。
保存
WhitespaceChecker.java文件(Ctrl+S 或 Cmd+S)。
现在我们已经编写了代码,需要编译并运行它以查看输出。
打开 WebIDE 底部的终端。确保你位于
~/project目录下。使用
javac命令编译 Java 程序:javac WhitespaceChecker.java如果没有错误,此命令将在
~/project目录下创建一个WhitespaceChecker.class文件。使用
java命令运行编译后的 Java 程序:java WhitespaceChecker你应该会看到类似于以下的输出:
Is ' ' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Is 'a' whitespace? false Is '1' whitespace? false这个输出表明
isWhitespace()方法正确地将空格、制表符和换行符识别为空白字符,将字母和数字字符识别为非空白字符。
你已经成功使用 Character.isWhitespace() 方法检查了不同的字符。在下一步中,我们将使用更多示例(包括不同类型的空白字符)来测试这个方法。
使用空格和制表符进行测试
在上一步中,我们使用单个空格和单个制表符测试了 Character.isWhitespace() 方法。在这一步,我们将进一步使用包含多个空格和制表符的字符串来测试该方法,以了解其行为。
请记住,Character.isWhitespace() 方法是针对单个字符的,而不是整个字符串。若要检查一个字符串是否仅包含空白字符,或者处理字符串中的空白字符,你通常需要逐个遍历字符串中的字符,并对每个字符应用 isWhitespace() 方法。
让我们修改 WhitespaceChecker.java 文件,以包含对多个空格和制表符的测试。
在 WebIDE 编辑器中打开
WhitespaceChecker.java文件。将现有代码替换为以下更新后的代码:
public class WhitespaceChecker { public static void main(String[] args) { char space = ' '; char tab = '\t'; char newline = '\n'; char letter = 'a'; char digit = '1'; System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space)); System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab)); System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline)); System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter)); System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit)); System.out.println("\nTesting with multiple characters:"); String testString1 = " "; // Three spaces String testString2 = "\t\t"; // Two tabs String testString3 = " \t "; // Spaces and tabs String testString4 = "Hello World"; // Contains space, but also letters System.out.println("Checking characters in: \"" + testString1 + "\""); for (int i = 0; i < testString1.length(); i++) { char c = testString1.charAt(i); System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c)); } System.out.println("Checking characters in: \"" + testString2 + "\""); for (int i = 0; i < testString2.length(); i++) { char c = testString2.charAt(i); System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c)); } System.out.println("Checking characters in: \"" + testString3 + "\""); for (int i = 0; i < testString3.length(); i++) { char c = testString3.charAt(i); System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c)); } System.out.println("Checking characters in: \"" + testString4 + "\""); for (int i = 0; i < testString4.length(); i++) { char c = testString4.charAt(i); System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c)); } } }以下是新代码的详细解释:
String testString1 = " ";:我们创建了一个包含三个空格字符的字符串。String testString2 = "\t\t";:我们创建了一个包含两个制表符的字符串。String testString3 = " \t ";:我们创建了一个包含空格和制表符混合的字符串。String testString4 = "Hello World";:我们创建了一个包含字母和一个空格的字符串。for (int i = 0; i < testString1.length(); i++):这是一个for循环,用于遍历字符串中的每个字符。char c = testString1.charAt(i);:在循环内部,charAt(i)方法获取当前索引i处的字符,并将其存储在变量c中。System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));:这行代码使用Character.isWhitespace(c)方法打印当前字符c是否为空白字符。(c == ' ' ? " " : (c == '\t' ? "\\t" : c))部分是一个三元运算符,用于在输出中为空格和制表符提供可见的表示形式。
保存
WhitespaceChecker.java文件。
现在,让我们编译并运行更新后的程序。
打开 WebIDE 底部的终端。确保你位于
~/project目录下。编译 Java 程序:
javac WhitespaceChecker.java运行编译后的 Java 程序:
java WhitespaceChecker你应该会看到类似以下的输出,其中包括测试字符串中每个字符的检查结果:
Is ' ' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Is 'a' whitespace? false Is '1' whitespace? false Testing with multiple characters: Checking characters in: " " Is ' ' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Checking characters in: " " Is '\t' whitespace? true Is '\t' whitespace? true Checking characters in: " " Is ' ' whitespace? true Is ' ' whitespace? true Is '\t' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Checking characters in: "Hello World" Is 'H' whitespace? false Is 'e' whitespace? false Is 'l' whitespace? false Is 'l' whitespace? false Is 'o' whitespace? false Is ' ' whitespace? true Is 'W' whitespace? false Is 'o' whitespace? false Is 'r' whitespace? false Is 'l' whitespace? false Is 'd' whitespace? false此输出证实了
Character.isWhitespace()方法能够正确识别字符串中的单个空格和制表符,即使它们连续出现或与其他字符混合。
你已经通过遍历字符,成功使用包含多个空格和制表符的字符串测试了 Character.isWhitespace() 方法。在下一步中,我们将查看该方法如何处理非空白字符。
处理非空白字符
在前面的步骤中,我们专注于使用 Character.isWhitespace() 方法识别空白字符。现在,让我们明确展示该方法如何处理那些不被视为空白的字符。这将加深你对该方法能识别和不能识别内容的理解。
虽然我们在之前的示例中已经包含了一些非空白字符(如 'a' 和 '1'),但让我们在 WhitespaceChecker.java 文件中再添加一些不同类型的示例。
在 WebIDE 编辑器中打开
WhitespaceChecker.java文件。在
main方法中,在现有的System.out.println语句之后,但在遍历字符串的循环之前添加以下代码行。你可以在System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));这一行之后添加它们。char punctuation = '.'; char symbol = '$'; char controlChar = '\u0000'; // Null character System.out.println("Is '" + punctuation + "' whitespace? " + Character.isWhitespace(punctuation)); System.out.println("Is '" + symbol + "' whitespace? " + Character.isWhitespace(symbol)); System.out.println("Is U+0000 whitespace? " + Character.isWhitespace(controlChar)); // Printing control chars might not display correctly让我们看看我们添加的新字符:
char punctuation = '.';:一个标点符号。char symbol = '$';:一个符号字符。char controlChar = '\u0000';:这是一个表示空字符的 Unicode 转义序列,空字符是一种控制字符。Character.isWhitespace()方法还会检查某些被 Unicode 标准视为空白的控制字符。
保存
WhitespaceChecker.java文件。
现在,让我们编译并运行更新后的程序,看看这些新字符的输出结果。
打开 WebIDE 底部的终端。确保你位于
~/project目录下。编译 Java 程序:
javac WhitespaceChecker.java运行编译后的 Java 程序:
java WhitespaceChecker你应该会看到类似以下的输出,其中包括新字符的检查结果:
Is ' ' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Is 'a' whitespace? false Is '1' whitespace? false Is '.' whitespace? false Is '$' whitespace? false Is U+0000 whitespace? false Testing with multiple characters: Checking characters in: " " Is ' ' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Checking characters in: " " Is '\t' whitespace? true Is '\t' whitespace? true Checking characters in: " " Is ' ' whitespace? true Is ' ' whitespace? true Is '\t' whitespace? true Is ' ' whitespace? true Is ' ' whitespace? true Checking characters in: "Hello World" Is 'H' whitespace? false Is 'e' whitespace? false Is 'l' whitespace? false Is 'l' whitespace? false Is 'o' whitespace? false Is ' ' whitespace? true Is 'W' whitespace? false Is 'o' whitespace? false Is 'r' whitespace? false Is 'l' whitespace? false Is 'd' whitespace? false从输出中可以看出,标点符号 ('.') 和符号 ('$') 被正确识别为非空白字符。空字符 (
\u0000) 也被Character.isWhitespace()方法识别为非空白字符。该方法专门检查 Unicode 标准中定义为空白的字符,其中包括空格、制表符、换行符、回车符、换页符 (\f) 以及某些其他控制字符和空格分隔符。
你现在已经了解了 Character.isWhitespace() 方法在处理各种类型字符时的表现,包括标准空白字符以及像标点符号、符号和控制字符这样的非空白字符。至此,我们对 Character.isWhitespace() 方法的探索就完成了。
总结
在本次实验中,我们学习了如何使用 Character.isWhitespace() 方法在 Java 中检查一个字符是否为空白字符。我们探究了该方法如何识别常见的空白字符,如空格、制表符和换行符。
我们通过创建一个简单的 Java 程序来练习使用 Character.isWhitespace() 方法,该程序测试了各种字符,包括空格、制表符以及像字母和数字这样的非空白字符,以查看它们是否被归类为空白字符。这个实践练习展示了该方法在 Java 代码中识别和处理空白字符的实际应用。



