Java中的字符串String

示例 1 : 创建字符串

字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象

常见创建字符串手段:

  1. 每当有一个字面值出现的时候,虚拟机就会创建一个字符串

  2. 调用String的构造方法创建一个字符串对象

  3. 通过+加号进行字符串拼接也会创建新的字符串对象

     public class TestString {
    
         public static void main(String[] args) {
    String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象 String teemo = new String("提莫"); //创建了两个字符串对象 char[] cs = new char[]{'崔','斯','特'}; String hero = new String(cs);// 通过字符数组创建一个字符串对象 String hero3 = garen + teemo;// 通过+加号进行字符串拼接
    }
    }

示例 2 : final

String 被修饰为final,所以是不能被继承的

package character;

public class TestString {

    public static void main(String[] args) {
MyString str = new MyString(); } /*这里会报错,因为String不能被继承*/
static class MyString extends String{ } }

示例 3 : immutable

immutable 是指不可改变的

比如创建了一个字符串对象

String garen ="盖伦";

不可改变的具体含义是指:

不能增加长度

不能减少长度

不能插入字符

不能删除字符

不能修改字符

一旦创建好这个字符串,里面的内容 永远 不能改变

String 的表现就像是一个常量

package character;

public  class TestString {

    public static void main(String[] args) {
String garen ="盖伦"; }
}

示例 4 : 字符串格式化

如果不使用字符串格式化,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐

使用字符串格式化,就可以简洁明了

package character;

public class TestString {

    public static void main(String[] args) {

        String name ="盖伦";
int kill = 8;
String title="超神"; //直接使用+进行字符串连接,编码感觉会比较繁琐,并且维护性差,易读性差
String sentence = name+ " 在进行了连续 " + kill + " 次击杀后,获得了 " + title +" 的称号"; System.out.println(sentence); //格式化字符串
//%s表示字符串,%d表示数字,%n表示换行
String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n"; String sentence2 = String.format(sentenceFormat, name,kill,title); System.out.println(sentence2); }
}

示例 5 : 字符串长度

length方法返回当前字符串的长度

可以有长度为0的字符串,即空字符串

package character;

public class TestString {

    public static void main(String[] args) {

        String name ="盖伦";

        System.out.println(name.length());

        String unknowHero = "";

        //可以有长度为0的字符串,即空字符串
System.out.println(unknowHero.length()); }
}

练习字符串数组排序

创建一个长度是8的字符串数组

使用8个长度是5的随机字符串初始化这个数组

对这个数组进行排序,按照每个字符串的首字母排序(无视大小写)

注1: 不能使用Arrays.sort() 要自己写

注2: 无视大小写,即 Axxxx 和 axxxxx 没有先后顺序

答案

package character;

import java.util.Arrays;

public class TestString {

    public static void main(String[] args) {

        String[] ss = new String[8];
for (int i = 0; i < ss.length; i++) {
String randomString = randomString(5);
ss[i] = randomString;
}
System.out.println("未排序前的字符串数组:");
System.out.println(Arrays.toString(ss)); for (int j = 0; j < ss.length; j++) {
for (int i = 0; i < ss.length - j - 1; i++) {
char firstChar1 = ss[i].charAt(0);
char firstChar2 = ss[i + 1].charAt(0);
firstChar1 = Character.toLowerCase(firstChar1);
firstChar2 = Character.toLowerCase(firstChar2); if (firstChar1 > firstChar2) {
String temp = ss[i];
ss[i] = ss[i + 1];
ss[i + 1] = temp;
}
}
} System.out.println("排序后的字符串数组:");
System.out.println(Arrays.toString(ss)); } private static String randomString(int length) {
String pool = "";
for (short i = '0'; i <= '9'; i++) {
pool += (char) i;
}
for (short i = 'a'; i <= 'z'; i++) {
pool += (char) i;
}
for (short i = 'A'; i <= 'Z'; i++) {
pool += (char) i;
}
char cs[] = new char[length];
for (int i = 0; i < cs.length; i++) {
int index = (int) (Math.random() * pool.length());
cs[i] = pool.charAt(index);
}
String result = new String(cs);
return result;
}
}

Java自学-数字与字符串 字符串的更多相关文章

  1. Java自学-数字与字符串 字符

    Java中的字符 示例 1 : 保存一个字符的时候使用char package character; public class TestChar { public static void main(S ...

  2. Java自学-数字与字符串 格式化输出

    Java 使用printf或format 进行格式化输出 步骤 1 : 格式化输出 如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了 %s ...

  3. Java自学-数字与字符串 字符串转换

    Java中把数字转换为字符串,字符串转换为数字 步骤 1 : 数字转字符串 方法1: 使用String类的静态方法valueOf 方法2: 先把基本类型装箱为对象,然后调用对象的toString pa ...

  4. Java自学-数字与字符串 MyStringBuffer

    自己开发一个Java StringBuffer 根据接口IStringBuffer ,自己做一个MyStringBuffer 步骤 1 : IStringBuffer接口 package charac ...

  5. Java自学-数字与字符串 StringBuffer

    Java StringBuffer常见方法 StringBuffer是可变长的字符串 示例 1 : 追加 删除 插入 反转 append追加 delete 删除 insert 插入 reverse 反 ...

  6. Java自学-数字与字符串 比较字符串

    Java 比较字符串 示例 1 : 是否是同一个对象 str1和str2的内容一定是一样的! 但是,并不是同一个字符串对象 package character; public class TestSt ...

  7. Java自学-数字与字符串 操纵字符串

    Java常见字符串方法 示例 1 : 获取字符 charAt(int index)获取指定位置的字符 package character; public class TestString { publ ...

  8. Java自学-数字与字符串 装箱和拆箱

    Java中基本类型的装箱和拆箱 步骤 1 : 封装类 所有的基本类型,都有对应的类类型 比如int对应的类是Integer 这种类就叫做封装类 package digit; public class ...

  9. Java自学-数字与字符串 数学方法

    Java Math类常用方法 java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在 步骤 1 : 四舍五入, 随机数,开方,次方,π,自然常数 package dig ...

随机推荐

  1. webUploader大文件断点续传学习心得 多文件

    二.Jsp代码: <!-- 断点续传   start--> <!-- 隐藏域 实时保存上传进度 --> <input id="jindutiao" t ...

  2. sklearn---评价指标

    查看sklearn支持的评价指标: import sklearn sorted(sklearn.metrics.SCORERS.keys()) ['accuracy', 'adjusted_mutua ...

  3. 201871010110-李华《面向对象程序设计(java)》第四周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  4. C#中的函数(二) 有参有返回值的函数

    接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写 ...

  5. vs2017无法查看类图

    问题描述: 在解决方案右键项目,没有查看->查看类图选项 问题根据: VS安装时没有安装VS扩展中的类设计器 解决方案: 运行安装包,找到Other Tols勾选Visual Studio ex ...

  6. 洛谷P4549 裴蜀定理 / Min

    原题链接 题目描述 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1X1+...AnXn>0,且S的值最小 输入输出格式 输入格式: 第一行给出数字N,代表有N个数 下 ...

  7. centos7.7离线安装nginx

    一.1.安装openssl,因为编译安装nginx需要指定openssl目录 mkdir /data/openssl -p cd /data/openssl wget https://www.open ...

  8. MySQL 官方测试库

    MySQL 官方测试库 github 地址 https://github.com/datacharmer/test_db MySQL 文档地址 https://dev.mysql.com/doc/em ...

  9. C语言常用库函数实现

    1.memcpy函数 memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域):拷贝多少个?有一个size变量控制拷贝的字节数: 函数原型:void * ...

  10. three.js 打包为一个组-几个单独的模型

    代码: <!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl ...