首页 > Java > java教程 > 正文

Java 中的字符串

WBOY
发布: 2024-08-30 15:12:54
原创
665 人浏览过

字符串是字符序列,但在java中,它们被视为对象并且本质上是不可变的; java 提供了 java.lang.String 包,提供了不同的方法来操作字符串,但我们也可以在 java 中创建可变字符串。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

如何在Java中定义字符串?

我们可以使用字符串文字和 new 关键字来定义它。但区别在于,文字不会创建新对象,除非并且直到它在字符串池中不可用。然而,无论字符串常量池如何,new关键字总是会创建新对象,因为它在堆区域中创建字符串。

  • 可变字符串
  • 不可变字符串

如何在 Java 中创建字符串?

在java中,我们可以使用以下两种方式定义字符串:

  • 通过使用字符串文字
  • 使用新关键字

1.字符串文字

我们使用literal创建的字符串直接进入字符串常量池。这意味着如果请求的字符串已经存在于字符串池中,那么将返回现有的字符串,如果请求的字符串不存在,则只会创建该字符串的新实例并将其放入池中以供将来参考。 JVM 执行所有这些事情。

语法:

String s="abc";
String s1 = "abc" ;
登录后复制

在上述场景中,字符串池中只会创建一个对象,因为 JVM 将无法找到所请求的对象,因此它将创建该对象并将其放入池中,并且 s1 将仅指向该引用以供进一步使用。因此,字符串文字还可以通过不再创建相同的实例来节省内存。因此,它们使我们的代码内存效率更高。

2.新关键字

在java中,我们使用new关键字来创建一个新对象。每当我们使用 new 关键字时,它都会为我们创建一个新对象。另外,使用 new 关键字创建的对象会被放入堆内存区域。

语法:

String s = new Stirng("abc");
登录后复制

在上面的例子中,这个对象会被放入堆内存区域,而不是字符串池,因为我们使用new关键字创建它。

示例:

public class Main {
public static void main(String[] args) {
String s = "abc";
String s1 = "abc";
String ss = new String("abc");
System.out.println("Output will be :: " + s + " "+ s1 +" "+ ss);
}
}
登录后复制

输出:

Java 中的字符串

Java 中字符串的规则和规定

它是不可变的,因此一旦分配我们就无法更改它的值。因此,为了创建可变字符串,我们需要使用字符串缓冲区。

需要记住的几点:

  •  定义字符串时,请确保它始终用双引号引起来。
  • 它们是不可变的,即值一旦分配就无法更改。
  • ‘+’运算符可以连接两个或多个字符串。
  • 我们可以直接将字符串分配给变量,而无需调用其构造函数。

Java中String类的方法

可用的各种方法如下:

  • 修剪()
  • 改为大写
  • 转小写
  • valueOf(int 值)
  • toLowerCase(区域设置 l)
  • 实习生()
  • indexOf(int ch)
  • indexOf(String substring, int fromIndex)
  • indexOf(字符串子串)
  • split(字符串正则表达式,int limit)
  • concat(字符串 str)
  • indexOf(int ch, int fromIndex)
  • 长度()
  • 等于(反对另一个)
  • join(CharSequence 分隔符,Iterable extends CharSequence> 元素)
  • isEmpty()
  • 替换(旧字符,新字符)
  • equalsIgnoreCase(String another)
  • split(字符串正则表达式)
  • 转大写(区域设置 l)
  • 包含(CharSequence)
  • charAt(int 索引)
  • 替换(CharSequence 旧,CharSequence 新)
  • join(CharSequence 分隔符、CharSequence…元素)
  • 子字符串(int beginIndex)
  • ubstring(int beginIndex, int endIndex)
  • java中的String类实现了一个名为
  • 的不同接口
  • 可序列化
  • 可比
  • 字符序列

此外,字符串类还实现了一个接口,即 CharSequence 接口; StringBuilder和String Buffer也实现了这个接口。 StringBuffer和StringBuilder用于在java中创建可变字符串。

示例 – 使用 StringBuffer

代码:

public class Demo{
public static void main(String[] args) {
StringBuffer sb=new StringBuffer("creating string ");
sb.append("executed");//original string will get chnage
System.out.println("Result is " +sb);//it will print creating string executed
}
}
登录后复制

输出:

Java 中的字符串

示例 – 使用 StringBuilder

代码:

public class Main{
public static void main(String[] args) {
StringBuilder sb=new StringBuilder("Creating string");
sb.append(" using string Builder");//original will get change
System.out.println("Result is "+sb);
}
}
登录后复制

输出:

Java 中的字符串

示例

以下是示例:

示例#1

代码:

public class Main{
public static void main(String[] args) {
String s1="demoforsting";
System.out.println("String is " +s1.substring(2,4));
System.out.println( "with one parameter " +s1.substring(2));
}
}
登录后复制

输出:

Java 中的字符串

Example #2

Code:

public class Demo{
public static void main(String[] args) {
String s1="abc";
String s2="abc";
String s3="ABC";
String s4="java";
System.out.println("Result is " +s1.equals(s2));//true
System.out.println("Result is " +s1.equals(s3));//false
System.out.println("Result is " +s1.equals(s4));//false
}
}
登录后复制

Output:

Java 中的字符串

Example #3

Code:

public class Demo{
public static void main(String[] args) {
String s1="convert it into uppercase";
String upper=s1.toUpperCase();
System.out.println("result is "+upper);
}
}
登录后复制

Output:

Java 中的字符串

Example #4

Code:

public class Demo{
public static void main(String[] args) {
String s1="CONVERT IT INTO LOWER CASE";
String s1upper=s1.toLowerCase();
System.out.println("result is "+s1upper);
}
}
登录后复制

Output:

Java 中的字符串

Example #5

Code:

public class Main{
public static void main(String[] args) {
String name="Demo to check contains method";
System.out.println("Result for conatins mehtod is " +name.contains("check"));
System.out.println("Result for conatins mehtod is " +name.contains("method"));
System.out.println("Result for conatins mehtod is " +name.contains("move"));
}
}
登录后复制

Output:

Java 中的字符串

Example #6

Code:

public class Main{
public static void main(String[] args) {
String str1 = "Demo for";
String str2 = "Concat";
String str3 = "Method";
// doing for string one
String str4 = str1.concat(str2);
System.out.println("Result is "+str4);
// for multiple string
String str5 = str1.concat(str2).concat(str3);
System.out.println("Result is "+str5);
}
}
登录后复制

Output:

Java 中的字符串

Example #7

Code:

public class Main {
public static void main(String[] args) {
String s1 =" Provide space to see use of trim method in java ";
System.out.println(s1.length());
System.out.println("without trim output is "+s1); //Not using trim here
String tr = s1.trim();
System.out.println(tr.length());
System.out.println("with trim output is "+tr); //using trim here
}
}
登录后复制

Output:

Java 中的字符串

Conclusion

So java string is an immutable object that provides security in various aspects like URL reading, database username and password, port, and many other things. But if we want to create a mutable string, we should use a string buffer and builder.

以上是Java 中的字符串的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板