“嗨,阿米戈!”

“但是,Bilaabo,你已经打过招呼了。”

“真的吗?好吧,我还是喜欢每节课都用这句话开始。”

“今天我们要深入研究String类。”

“但是,我已经知道了一切。我什至知道 String 类是不可变的。”

“String类有46个方法,你知道几个?”

“不超过十个。其实最多也就五个吧。”

“那就听好了。”

“Java 的创造者注意到程序中的大多数字符串都不是为了修改,但有时它们还是会被修改。当你创建一个字符串,在其中保存一些重要的东西,将它传递给其他人的方法时,它会被改变是非常烦人的. 为了防止这种情况发生,他们决定同时创建可变和不可变字符串。”

“String 类用于不可变字符串,StringBuilder类用于可变字符串。这些类的对象很容易转换为其他类型。在大多数情况下,Java 开发人员只需要 String,这证明 Java 的创建者是正确的。”

“所以如果我需要一个字符串,我会使用 String 类。如果我需要一个可变字符串,那么我会使用 StringBuilder?”

“是的,其实还有一个类叫StringBuffer,它是StringBuilder的一个副本,只不过它的所有方法都声明为synchronized,这样就可以在程序的不同线程中访问这个对象。”

“那么这个例子呢?这里的字符串不会改变吗?”

String s = "cat";
s = s + "-" + s;

“不。这里有两个字符串对象:«cat» 和 «cat-cat»。第二个是使用第一个创建的,但第一个对象没有改变。实际上,这里的事情要有趣得多。这是代码编译器在编译您的示例时生成:”

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

“所以,StringBuilder 几乎总是用来创建新的字符串,但有时编译器会简单地为您完成所有工作。但是您的版本更简单,您不觉得吗?”

“是啊,Java 拥有如此先进的编译器真是太棒了。”

“好吧,现在让我们来看看 String 类的方法:”

1) 如何找到字符串的长度?

长度方法返回字符串的长度(其中的字符数)。”

方法) 例子)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) 如何从字符串中获取字符?

charAt方法通过其索引从 String 返回一个字符。字符索引从 0 开始。

方法) 例子)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) 如何从字符串中获取字符?

如何从字符串中获取字符?

方法) 例子)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) 如何比较字符串?

“equals 方法检查字符串是否匹配,equalsIgnoreCase方法检查忽略大小写时字符串是否匹配。

方法) 方法)
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) 如何让字符串中的所有字母大写或小写?

toUpperCase方法返回一个全部为大写字母的 String 副本。”

toLowerCase方法返回所有小写字母的 String 副本。”

方法) 例子)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

结果:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

结果:

s == "good news, everyone!";

6) 如何删除字符串开头和结尾的空格?

“trim 方法返回一个字符串的副本,其开头和结尾都没有空白字符。”

方法) 例子)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

结果:

s == "Good news, everyone!";