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. Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä'

    java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more ...

  2. JMeter5.1开发JDBC协议接口脚本

    配置 qzcsbj是连接池名称 jdbc:mysql://localhost:3306/qzcsbj?useUnicode=true&characterEncoding=utf8&al ...

  3. Linux 换 jdk 版本 环境没有生效

    Linux 换 jdk 版本 环境没有生效 把 jdk 1.7 换成 1.8, 路径设置好了后 用了下面两个都没有生效 . /etc/profile source ~/.bashrc 还是 jdk 1 ...

  4. USACO Roadblock

    洛谷 P2176 [USACO14FEB]路障Roadblock 洛谷传送门 JDOJ 2406: USACO 2014 Feb Silver 2.Roadblock JDOJ传送门1 JDOJ 24 ...

  5. 神经网络中Batch Size的理解

    直观的理解:Batch Size定义:一次训练所选取的样本数.Batch Size的大小影响模型的优化程度和速度.同时其直接影响到GPU内存的使用情况,假如你GPU内存不大,该数值最好设置小一点. 为 ...

  6. 网络协议 7 - UDP 协议

    网络协议五步登天路,我们一路迈过了物理层.链路层,今天终于到了传输层.从这一层开始,很多知识应该都是服务端开发必备的知识了,今天我们就一起来梳理下.     其实,讲到 UDP,就少不了 TCP.这俩 ...

  7. Python网络爬虫神器PyQuery的使用方法

    #!/usr/bin/env python # -*- coding: utf-8 -*- import requests from pyquery import PyQuery as pq url ...

  8. Linux tty驱动架构

    Linux tty子系统包含:tty核心,tty线路规程和tty驱动.tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动则是面向tty设备的硬件驱 ...

  9. suse12.2构建samba

    1:添加用户 useradd wangjunhui -d /home/wangjunhuipasswd wangjunhui 2:配置samba smbpasswd -a wangjunhui vi ...

  10. 紧随时代的步伐--Java8特性之接口默认方法

    1.关于Java8 自从1996年Sun公司发布Java以来,Java到目前为止已经走过21个年头,每一次的升级,都是Java语言的革新,对时代发展的适应.2014年Oracle发布Java8,而据可 ...