0

0

Java之字符串详解

迷茫

迷茫

发布时间:2017-03-26 15:56:45

|

1862人浏览过

|

来源于php中文网

原创

  • 字符串

  在java中,字符串被作为String类型的对象处理。String类位于java.lang包中,默认情况下,该包被自动导入所有的程序。

  创建String对象的方法:

String s1 = "java";
String s2 = new String();
String s3 = new String("Java");
  1. Java字符串的不变性

  String对象创建后不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。

立即学习Java免费学习笔记(深入)”;

  如果需要一个可以改变的字符串可以使用StringBuffer或者StringBuilder。

  每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法。

  常量池在Java中是用于保存在编译期已确定的、已编译的class文件中的数据。

package cn.test;public class Demo12 {    public static void main(String[] args) {
        String s1 = "java";//先检查字符串常量池中是否有"java"字符串,如果有则直接指向,如果没有就在字符串常量池中添加"java"字符串并指向它,所以这种方式创建字符串时最多创建一个对象,或者不创建对象
        String s2 = "java";//s2直接指向字符串常量池中的"java"
        String s3 = new String("java");//在堆内存申请一块内存存储字符串"java",s3指向其内存块对象,同时检查字符串常量池中是否有"java"字符串,如果没有就添加字符串"java"到常量池中,所以new String()有可能创建两个对象
        String s4 = new String("java");
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s3 == s4);
        s1 = "欢迎来到" + s1;
        System.out.println(s1);
        System.out.println(s3.equals(s4));
    }
}

  执行结果:  

  true
  false
  false
  欢迎来到java
  true

  • String类常用的方法

举例1:

String fileName = "HelloWorld.java"; 
String email = "xiaoli@163.com";
        
// 判断.java文件名是否正确:合法的文件名应该以.java结尾
int index = fileName.lastIndexOf('.');  
String prefix = fileName.substring(index+1);
if ( index > 0 && prefix.equals("java")) {
    System.out.println("Java文件名正确");
} else {
    System.out.println("Java文件名无效");
}

// 判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前
int index2 = email.indexOf('@');    
int index3 = email.indexOf('.');
if (index2 != -1 && index3 > index2) {
    System.out.println("邮箱格式正确");
} else {
    System.out.println("邮箱格式无效");
}

  String str = "boo:and:foo";
  String[] arr = str.split(":");
  for (int i = 0; i < arr.length; i++)
  {
    System.out.print(arr[i]);
  }
String str = "boo:and:foo";
  String[] arr = str.split(":");
  
for
 (int i = 0; i < arr.length; i++)
  {
    System.out.print(arr[i]);
  }

   执行结果: 

10分钟内自己学会PHP
10分钟内自己学会PHP

10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A

下载

  Java文件名正确
  邮箱格式正确
  booandfoo

  举例2:

String str = "abcd阿";
byte[] b = str.getBytes();
for (int j = 0; j < b.length; j++) {
    System.out.print("[" + b[j] + "]");
}

  运行结果:

  [97][98][99][100][-80][-94]

  注:1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节

  示例3:

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";        
// 出现次数int num = 0;        
 // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数for (  int i = 0;i < s.length(); i++ )
{ // 获取每个字符,判断是否是字符a
    if (  s.charAt(i) == 'a' ) {     // 累加统计次数
    num++; 
    }
}
System.out.println("字符a出现的次数:" + num);

  运行结果:

  字符a出现的次数:8

  •  StringBuilder类

  String类具有可变性,频繁操作字符串时会产生很多临时变量,使用StringBuilder或StringBuffer就可以避免这个问题。它们基本相似,不同之处是StringBuffer是线程安全的,所以性能略高。因此,一般情况下创建一个内容可变的字符串对象,优先使用StringBuilder类。

StringBuilder str2 = new StringBuilder("java");

  StringBuilder类的常用方法:

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

6

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

31

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

18

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

10

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

44

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

5

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 2.5万人学习

C# 教程
C# 教程

共94课时 | 6.7万人学习

Java 教程
Java 教程

共578课时 | 45.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号