正在加载...

Java 里字母的个数

plant.length() 数 plant 已经保存的字母。String plant = "leaf"; 仍然保存 leaf,System.out.println(plant.length()) 写出 4。字母仍是 leaf。它们不变成那个数字。名字后面的点是提问,书写行显示答案。

点问有几个字母

打开 Mint.java。文件名仍然是 Mint.java,因为 public class Mint 仍然是文件名。这一页不改文件名,也不改 public class Mint。上一页保存的是 String plant = "leaf";,还有一行写出 leaf 的书写行。这一页留下那一行保存行。如果 int 那一行还在,那是引号那一页之前留下的,把它删掉。删掉每一行 import、每一行 reader、每一行 nextLine。你留下的文件里没有 import,没有 Scanner,也没有 nextLine。一个用不上的 import 单独不会让 javac 失败,也不会写出个数。个数只由提问的那一行书写行写出。

在 main 里面,保存行仍然是 String plant = "leaf";。String 是种类词。plant 是名字,以小写的 p 开头。引号托住 l、e、a、f,全是小写,中间没有别的东西。这一行保存字母。它不问问题,也不写屏幕。提问是下一步,在字母保存好之后。名字后面写一个点,然后是提问词 length,然后是一对里面什么都没有的括号。整个提问是 plant.length()。点把提问绑在名字上。length 是问个数的词。空括号表示这个提问里面不需要额外的词。这里没有位置编号。在你留下的文件里,这个提问写在第二行书写行里面。它不是单独的一行。提问不是保存。名字里的字母仍是 leaf。提问不拿掉引号,也不把数字 4 放进名字 plant 里面。

你留下的文件先写出字母,再提问。第一行书写行是光着的名字:System.out.println(plant);。没有引号,也没有点。它写出 leaf 并结束这一行,和上一页一样。第二行书写行是提问:System.out.println(plant.length());。length 两边没有引号。Java 读名字 plant,数这个名字保存的字母,写出这个个数,然后结束这一行。对你留下的文件来说,个数是 4。引号不在屏幕上。length 这个词不在屏幕上。括号不在屏幕上。名字自己的字母 p、l、a、n、t 不在屏幕上。保存文件。

你留下的文件

把下面这些保存成 Mint.java。这是这一页留下的文件。一行保存行,String plant = "leaf";。一行写出字母的书写行。一行写出个数的书写行。个数那一行是 println 里面的 plant.length()。没有别的。

你留下的文件

java
public class Mint {
    public static void main(String[] args) {
        String plant = "leaf";
        System.out.println(plant);
        System.out.println(plant.length());
    }
}

从上往下读。public class Mint 给文件起名。它不写屏幕。public static void main(String[] args) 是 Java 开始的地方。那一行 main 上的 String 仍然不是保存行。保存行是下一行,String plant = "leaf";。它保存四个字母。它什么都不写。System.out.println(plant); 写出 leaf 并结束这一行。System.out.println(plant.length()); 写出 4 并结束这一行。屏幕上两行。第一行是字母。第二行是个数。引号留在文件里,围着 leaf,两行屏幕上都没有。

屏幕显示什么

在放着这个 Mint.java 的文件夹里,输入 javac Mint.java。文件没问题时,这条命令不写出任何一行。点后面的提问单独不会让 javac 写出一行,也不会让 javac 失败。然后输入 java Mint。java 后面不要写 .java。这是你在 Windows 和 macOS 上输入的同样两条命令。这一页不引用 shell 的提示符。程序写出 leaf,下一行写出 4。它不等你输入。字母已经在文件里,个数用这些字母作答。如果 java Mint 等着,nextLine 还在文件里。删掉那一行,留下保存行和两行书写行。程序在第二行书写行之后结束。

屏幕显示 leaf,然后是 4。四个小写字母,然后是个数,两行都没有引号。如果屏幕显示 plant,某一行书写行在名字两边加了引号:System.out.println("plant");。这些引号标出字母 p、l、a、n、t,所以保存的 leaf 没有被写出,提问也没有发生。如果屏幕只显示 leaf,第二行书写行缺了。你留下的文件有两行,先是字母,然后是个数。如果屏幕只显示 4,第一行书写行缺了。字母可以还在文件里,但这一页的证据是屏幕:leaf,然后 4。如果屏幕先显示 4 再显示 leaf,两行书写行对调了。把 println(plant) 放在 println(plant.length()) 上面。如果屏幕显示 5,对这几个字母来说个数是错的。引号不是名字保存的字母,所以它们不算进 4。第五个字母必须在引号中间。你留下的文件只有 l、e、a、f。如果屏幕显示 mint,你还在更早的文件上。如果屏幕显示 leaf 然后再显示一次 leaf,第二行书写行是另一个 println(plant),不是提问。屏幕显示错了那一行,你不必重新安装 Java。

引号中间的一个大写字母也算一个字母,和小写一样。String plant = "Leaf"; 仍然让 plant.length() 写出 4。写出字母的那一行显示 Leaf,带一个大写的 L。你留下的文件不用这个。它用四个小写字母,个数那一行写出 4。按引号中间真正有的字母来判断个数。

你可以把个数再保存到第二个名字下面。int count = plant.length(); 取走答案,种类词是 int,因为答案是整数。然后 System.out.println(count); 写出 4。这是允许的。这不是你留下的文件。留下的文件直接写出提问,所以屏幕是 leaf 然后 4,你不需要第二个名字才能看见个数。数字 4 是答案。它不替换 plant 里面的字母。

空格也算一个

引号中间的字母可以换,个数跟着这些字母走。在第一个提问下面,把一组新字母保存到同一个名字里,再问一次。新的保存行是 plant = "leaf stem";。它不以 String 开头。plant 已经有了,所以这一行只换这个名字保存的字母。引号中间有九个位置:l、e、a、f、一个空格、s、t、e、m。空格是其中之一。length 数它。两个词仍然是一个保存的值,不是两个名字。这第二个文件不写出字母。它只写出两个个数,免得屏幕和字母本身混在一起。

这是第二个文件。它不是你留下的文件。你留下的文件有一行保存行,字母是 leaf,没有空格,屏幕是 leaf 然后 4。你想看见空格被数进去时,把这第二个文件保存成 Mint.java,然后再把留下的文件放回去。

length 数进去的空格

java
public class Mint {
    public static void main(String[] args) {
        String plant = "leaf";
        System.out.println(plant.length());
        plant = "leaf stem";
        System.out.println(plant.length());
    }
}

输入 javac Mint.java。文件没问题,所以 javac 不写出任何一行。第二行保存行可以不写 String,这个省略不会让 javac 失败。然后输入 java Mint。屏幕显示 4,下一行是 9。两行。没有引号。字母 leaf 不在屏幕上。字母 leaf stem 也不在屏幕上。只有个数。第一个个数取自名字当时保存的字母。第二个个数取自 plant = "leaf stem"; 之后名字保存的字母。如果第二行是 8,引号中间缺了空格,保存的字母是 leafstem。如果两行都是 4,第二行保存行缺了,或者它仍然是 "leaf"。如果两行都是 9,第一行保存行已经是 "leaf stem"。屏幕跟着文件里各行的顺序走,也跟着引号中间的字母走,空格算在内。

同一个名字不要第二次写 String。已经创建过 plant 的那一行下面再写 String plant = "leaf stem";,是另一种错误。那一行试图再创建一次 plant。javac 写出错误,不会安静。你不需要那条错误的原话。先不要输入 java Mint。删掉第二个 String,留下 plant = "leaf stem";。名字只创建一次。后面的行只换它保存的字母,或者对这些字母提问。你留下的文件里没有第二行保存行。看见 4 然后 9 之后,把那个文件放回去:String plant = "leaf";、println(plant) 和 println(plant.length())。

哪个字母在哪个位置

length 问有几个。另一个提问问某个位置上是哪个字母。提问词是 charAt。位置写在括号里面,因为这个提问需要那个额外的词。第一个位置是 0,不是 1。在 leaf 里,位置 0 是 l,位置 1 是 e,位置 2 是 a,位置 3 是 f。plant.charAt(0) 用单独的字母 l 作答。plant.charAt(1) 用单独的字母 e 作答。答案是一个字母,不是整个词 leaf,也不是位置的编号。plant 里保存的字母仍是 leaf。问一个位置不会擦掉其余的字母。

这是第三个文件。它不是你留下的文件。你留下的文件问的是 length,屏幕是 leaf 然后 4。你想看见位置时,把这第三个文件保存成 Mint.java,然后再把留下的文件放回去。

前两个位置

java
public class Mint {
    public static void main(String[] args) {
        String plant = "leaf";
        System.out.println(plant.charAt(0));
        System.out.println(plant.charAt(1));
    }
}

输入 javac Mint.java。文件没问题,所以 javac 不写出任何一行。括号里的位置编号,在那个位置是字母之一时,不会让 javac 失败。然后输入 java Mint。屏幕显示 l,下一行是 e。两行。没有引号。词 leaf 不在屏幕上。数字 0 和 1 不在屏幕上。如果第一行是 e,第一个提问要的是位置 1,那是第二个字母。第一个字母是位置 0。如果第一行是 leaf,书写行是 println(plant),不是 charAt。如果第一行是 0,书写行写出了位置的编号,没有问 charAt。如果两行都是 l,两个提问都是 charAt(0)。位置 2 写出 a。位置 3 写出 f。这两个位置在 leaf 里存在。这第三个文件不问它们。它问 0,然后问 1,让你看见个数从 0 开始。

没有字母的位置

位置 4 不是 leaf 的字母之一。个数是 4,存在的位置是 0、1、2 和 3。把第一个提问改成 plant.charAt(4),第三个文件的其余部分留下。输入 javac Mint.java。javac 不写出任何一行。这一行是允许的提问,所以缺一个字母不是 javac 的失败。然后输入 java Mint。程序写出错误。它不写出第五个字母,也不写出 4。你不需要那条错误的原话。有用的事实是:失败发生在程序运行的时候,不是 javac 读文件的时候。如果你还要那两行,把 charAt(0) 和 charAt(1) 放回去,然后再把留下的文件放回去。不要把 charAt(4) 留在你留下的文件里。

空的一对,个数是 0。String plant = ""; 不保存任何字母。System.out.println(plant.length()); 写出 0。javac 不写出任何一行,因为空的一对是允许的。java Mint 写出 0 然后结束。它不等着。空白行是上一页 println(plant) 写出的东西。提问不同:屏幕显示数字 0,那是个数,不是空白行。在那一对空引号上,plant.charAt(0) 是一个没有字母的位置。javac 仍然不写出任何一行。java Mint 写出错误,因为位置 0 需要一个字母,而个数是 0。看见 0 之后,把保存行再改回 String plant = "leaf";。

括号是提问的一部分。System.out.println(plant.length); 有点和词 length,没有括号。javac 写出错误。它不会安静。没有屏幕可读,因为 javac 写出错误时你不输入 java Mint。你不需要原话。把空的一对括号放回去,让这一行变成 System.out.println(plant.length());。charAt 不能是空的。System.out.println(plant.charAt()); 让 javac 写出错误,因为这个提问需要位置。你在第三个文件上时,把一个存在的位置放进括号,例如 0。你留下的文件用 length(),括号中间什么都没有。

提问写在名字后面。System.out.println(length()); 把 length 当成这个文件里没有的名字。javac 写出错误。提问词放在 plant 和一个点的后面。System.out.println(plantlength()); 也是一个名字,plantlength,这个文件没有它。点把名字和提问分开。名字必须在使用它的那一行之前存在。如果 System.out.println(plant.length()); 写在 String plant = "leaf"; 上面,javac 写出错误。提问在 plant 还不存在的时候就写出了这个名字。把保存行移到书写行上面。这和你已经用于 count 和 reader 的顺序一样。

提问是给字母的,不是给用 int 保存的整数。int count = 4; 和 System.out.println(count.length()); 向一个整数问它保存几个字母。javac 写出错误。整数没有 length 这个提问。这一页的修法不只是补上括号。修法是向保存字母的名字提问:plant.length()。引号那一页之前的那一页保存 int,保存 4,没有提问。上一页保存 String,保存 "leaf"。这一页保存 String,保存 "leaf",并问 length。

现在你可以问一个名字已经保存几个字母,以及从 0 开始的位置上是哪个字母。String plant = "leaf"; 仍然保存 leaf。System.out.println(plant); 写出 leaf。System.out.println(plant.length()); 写出 4,字母仍是 leaf。后面的 plant = "leaf stem"; 让下一个个数变成 9,因为空格算一个。plant.charAt(0) 写出 l,plant.charAt(1) 写出 e。没有字母的位置,例如 leaf 的 4,让 javac 保持安静,并让 java Mint 写出错误。没有括号的 length 让 javac 写出错误。下一页放下这些提问。它留在一个整数上,就像这个个数写出的 4,那个数字由你再写进文件。

屏幕显示答案,字母留下

你留下的文件写出 leaf,然后写出 4。第一行书写行上的名字是 plant,plant 不在屏幕上。length 在文件里,在点的后面,不在屏幕上。引号留在 leaf 两边。它们不被数进去,也不在屏幕上。引号中间的空格被数进去。第一个位置是 0。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
6
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部