本节重点思维导图

String 类

创建字符串

String str = "I love ai";

在代码中遇到字符串常量时,"I love ai",编译器会使用该值创建一个 String 对象

可以使用关键字和构造方法来创建 String 对象

String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串

比如提供一个字符数组参数:

public class StringDemo{
public static void main(String args[]){
char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
System.out.println( helloString );
}
}

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类

比较符号

  • ==:比较的是两个字符串的地址
  • equals():比较的是两个字符串的内容
String str1 = "abc";
String str2 = "abc"; System.out.println(str1.equals(str2));
System.out.println(str1 == str2); String str3 = new String("abc");
System.out.println(str1.equals(str3));
System.out.println(str1== str3);

实例:

用户登录:果用户输入的用户名和密码分别为zhangsan、123456,则登录成功,否则登录失败。

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); System.out.println("input name:");
String name = scanner.next(); System.out.println("input pwd");
String pwd = scanner.next(); if ("zhangsan".equals(name) && "123456".equals(pwd)) {
System.out.println("success");
} else {
System.out.println("failed");
}
}

User类:

public class User {
private int id;
private String name;
private byte age; public User setId(int id) {
this.id = id;
return this;
} public User setName(String name) {
this.name = name;
return this;
} public User setAge(byte age) {
this.age = age;
return this;
} public static void main(String[] args) {
User user = new User();
user.setId(3).setName("fds").setAge((byte) 33); } }
public class StreamFromString {  

    static String src = "今天的天气真的不好";
public static void main(String[] args) throws IOException { byte[] buff = new byte[1024];
//从字符串获取字节写入流
InputStream is = new ByteArrayInputStream(src.getBytes("utf-8"));
int len = -1;
while(-1 != (len = is.read(buff))) {
//将字节数组转换为字符串
String res = new String(buff, 0, len);
System.out.println(res);
}
}

 字符串长度——xx.length();

public class StringDemo {
public static void main(String args[]) {
String site = "www.runoob.com";
int len = site.length();
System.out.println( "菜鸟教程网址长度 : " + len );
}
}

连接字符串

string1.concat(string2);
"我的名字是 ".concat("Runoob");

更常用:      +

"Hello," + " runoob" + "!"

示例:

public class StringDemo {
public static void main(String args[]) {
String string1 = "菜鸟教程网址:";
System.out.println("1、" + string1 + "www.runoob.com");
}
}

创建格式化字符串

 String 方法

额外:

这部分比较重点,请看网页最下端笔记内容

 StringBuffer 和 StringBuilder 类

https://www.cnblogs.com/su-feng/p/6659064.html

对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象

 

String 长度大小不可变

StringBuffer 和 StringBuilder 长度可变

StringBuffer 线程安全 StringBuilder 线程不安全

StringBuilder 速度快

建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类

public class Test{
public static void main(String args[]){
StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
sBuffer.append("www");
sBuffer.append(".runoob");
sBuffer.append(".com"
);
System.out.println(sBuffer);
}
}

详情

示例:

public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("aaa");
sb.append("bbb");
sb.append("ccc"); System.out.println(sb); sb.insert(3, "1234");
System.out.println(sb); sb.insert(4, true);
System.out.println(sb); sb.deleteCharAt(8);
System.out.println(sb); sb.delete(3, 6);
System.out.println(sb); int length = sb.length();
System.out.println(length); sb.reverse();
System.out.println(sb); StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("aa").append("bb").append("cc");
System.out.println(stringBuffer);
}

产生随机字符

public static void main(String[] args) {
String string = UUID.randomUUID().toString();
System.out.println(string);
System.out.println(string.length());
}

Java ——String 类 StringBuffer 和 StringBuilder类 随机字符的更多相关文章

  1. JAVA String、StringBuffer、StringBuilder类解读

    JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...

  2. String、StringBuffer和StringBuilder类的区别

    Java提供了String.StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法. 它们的相同点是都用来封装字符串:都实现了CharSequence接 ...

  3. 浅谈java中的String、StringBuffer、StringBuilder类的区别以及关系

    在java中最常见的使用就是对字符串的操作:首先先说一下对字符串的理解:字符串就是一连串字符序列,Java提供了String和StringBuffer两个类来封装字符串,并提供一系列方法来操作字符串对 ...

  4. Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...

  5. Java笔记——String、StringBuffer和StringBuilder类

    String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符串序列是不可改变的,直至这个对象被销毁.   StringBuffer对象则代表一个字符序列可变的字符串,当一个S ...

  6. 【JAVA中String、StringBuffer、StringBuilder类的使用】

    一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: public class Strin ...

  7. 总结 String、StringBuffer与StringBuilder类中常用的方法

    一.String类的常用方法 1.获取: 1)获取字符串str长度 int i = str.length(); 2)根据位置(index)获取字符 char c = str.charAt(index) ...

  8. Java String和StringBuffer和StringBuilder

    最近在牛课网上做了几道字符串操作的题目,好久没有做题了,之前用的也是大一时C语言做的,对Java字符串操作不太了解,所以深入了解一下String类的相关用法 String构造方法 String() 空 ...

  9. Java String、StringBuffer、StringBuilder有什么区别

    ① String是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑.它是典型的immutable类,被声明成final class,所有属性也都是final的,由于它的不可变性,类 ...

随机推荐

  1. Servlet实现Cookie自动登录,并显示保存的用户信息

    转自:https://blog.csdn.net/qq_29612963/article/details/51100565

  2. 如何设置一个App的缓存机制

    在手机应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在iOS设备中加一个缓存的机制,前面一篇文章介绍了iOS设备的内存缓存,这篇文章将设计一个本地缓存的机制. 功能需求 这个 ...

  3. MySQL索引优化(索引两表优化案例)

    建表SQL CREATE TABLE IF NOT EXISTS `class` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `card` INT ...

  4. PC端网站微信扫码登录

    需求分析:用户通过扫描我们网页的二维码,如果已经绑定我们平台的账户,即成功进入首页,否则提示先绑定个人微信账号. 1.绑定微信账号:是通过关注微信公众号实现绑定个人微信账号.首先通过后台接口获取到ti ...

  5. PAT Advanced 1077 Kuchiguse (20 分)

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  6. jenkins插件send files or execute commands over ssh插件parameterized publishing选项使用

    1.设置一个参数 2.设置label 3.勾选parameterized publishing

  7. uoj280 【UTR #2】题目难度提升 堆维护中位数+set

    题目传送门 http://uoj.ac/problem/280 题解 这道题很妙啊. 这种题目如果给予选手足够的时间,每一个选手应该都能做出来. 大概就是核心思路看上去很简单,但是想要推出来并不简单. ...

  8. spring IOC(Spring 生命周期,先1.构造方式,2,初始化方法,3,目标方法,4,销毁方法)

  9. 【bozj2287】【[POJ Challenge]消失之物】维护多值递推

    (上不了p站我要死了) Description ftiasch 有 N 个物品, 体积分别是 W1, W2, -, WN. 由于她的疏忽, 第 i 个物品丢失了. "要使用剩下的 N - 1 ...

  10. luogu P1217 [USACO1.5]回文质数 Prime Palindromes x

    P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...