欢迎回到知识城的课程 关于 Java 编程。 我是克里夫·布罗佐 我是你的导师 今天我们将学习所有关于弦的知识, 以及如何将数据导入我们的程序。 我们来看一些代码。 当 Java 处理字符串时, 一个字符串被认为是一个类 每个字符串都是该类中的一个对象。 现在你可能会说那又怎样? 嗯,问题是字符串被存储 作为参考变量。 这意味着,而不是包含 字符串中的实际单词, 它包含一个指向内存地址的指针。 第二个字符串将包含不同的指针 到不同的内存地址。 现在,通常在编程中, 我们会使用 equal 来比较事物。 但在这种情况下, equal equal 将比较内存地址 明显不同 它不会比较数据值。 让我们看看这是什么样子。 如果我们在第 5 行写一个短程序, 我设置了一个名为 myName 的变量, 我赋予它我名字的价值。 然后我设置了另一个名为 myName2 的字符串, 我读了一些资料。 我设置了扫描仪,然后打印出一行 告诉用户该做什么。 在第九行我说, "你叫什么名字?" 和控制台的人, 输入存储在 myName2 中的名称。 然后我问这个问题, 如果 myName 等于 myName2 然后打印出 myName 等于 myName2, 否则打印出 myName 不等于 myName2。 再一次,我会提醒你注意这个事实 我们在这里使用的是equal equal 这是一种测试相等性的方法 在大多数编程语言中。 当程序在下面运行时, 屏幕上出现提示, "你叫什么名字?" 那是从第九行。 然后在第 10 行我输入 Cliff, 那是我的名字。 第 11 行说我存储的悬崖 在第五行等于我输入的那一行 在第 10 行。 尽管它们完全相同, 程序告诉我 Cliff 不等于 Cliff。 那是因为它正在比较这些变量的位置 位于内存中, 不是实际数据是什么。 一种解决方法是进去 并改变 Java 比较相等的方式, 实际上使用了一个叫做equal的函数。 现在这与您正在查看的程序相同 除了第 11 行, 我改变了代码的工作方式。 而不是使用equal equal, 我输入了 myName.equals 然后在括号中 myName2。 通过使用 equals 而不是检查内存位置 显然不相等, 它检查实际包含的值 在那些内存位置。 所以当程序再次运行时, 我输入我的名字,这次它说的是 Cliff 等于悬崖。 不过,我会引起你的注意 到屏幕的右侧。 我再次运行程序, 这次我用大写字母输入了我的名字。 嗯,这一次节目准确地表述了Cliff 不等于 Cliff 因为一个不是全部大写, 另一个是 以及这些字母的实际 1 和 0 与大写字母不同。 让我们看看会发生什么 当我们比较单个字符时。 我们有能力打电话 对几个不同的函数进行评估 个人角色的内在是什么。 我可以测试, 这是一封信吗? 是数字吗? 是空白吗? 是大写吗? 是小写吗? 我实际上可以将它转换为大写, 我可以将其转换为小写 或者我什至可以转换单个字母 到将要存储的字符串 作为一个字符串。 让我们来看看它是如何运行的。 我写了一个从第 5 行开始的程序 我取了一个字符变量 我称它为字母C,并给它赋值为"C"。 你会记得 单个字符得到单引号。 第六行打印出第一行 说这个字符是空白的。 这是这里输出的第一行, 字符是C。 然后在第八行, 我测试看字符是否为大写, .isUpperCase 是一个函数,我使用的是 letterC, 它知道区别 介于大写字母和小写字母之间。 在这种情况下, 我在第五行分配的"C"是大写的。 所以第 9 行执行, 这正是我在输出中所说的, 字符 C 是大写的。 程序的下一部分说, 字母 C 现在等于, 好吧,我正在做的是改变价值 将变量 letterC 转换为小写。 我正在调用小写函数来小写 这需要字母C中的任何内容, 将其更改为小写 并将其放回字母 C 中。 仅用于第 15 行的验证, 我打印出一行表示字符 C 已更改为小写。 这是这里的第三行字符 C 已更改为小写。 然后我在第 17 到 20 行再次运行我的测试 查看字符是否为大写。 这段代码与第 8 行到第 11 行完全相同。 但这一次它告诉我字符 C 是小写的。 然后我在第 22 行问, 字符是字母吗? 我通过 .isLetter 函数, 字母 C. 在这种情况下, 字母C是一个字母,它打印出来 这是字母表中的一个字母。 在第 27 行, 我给那个字母指定了字符"5"。 现在这不是数字"5", 它仍然被视为一个字符 因为它是单引号。 我打印出一行只是为了确认。 字符已更改为 5。 然后我问这个字符是数字吗? 现在, .isDigit 并不意味着是数字, 他们是不同的。 它只知道字母之间的区别 的字母表和字母表的数字。 在这种情况下, 字符 5 是一个数字 这就是这里打印的行。 我把字母C改成空格 我打印出一行指定 字符已更改为空白。 这是输出中的最后一行。 我在第 39 行测试以查看字符是否为空格。 我将 .isWhitespace 函数传递给 letterC 是的,它确实打印出字符是空白。 现在,您知道字符串是如何存储的。 它们被存储为内存位置, 我需要使用点等于这个词而不是 比相等。 我们看到了如何将字符输入到我们的程序中 然后测试看看它们是什么类型的字符。 我们可以把它们变成大写, 我们可以把它们变成小写, 我们可以把它们变成字符串。 下次我们处理字符串时加入我, 字符串索引和一些字符串操作。 一会儿见。