[Java学习] Java字符串(String)

  从表面上看,字符串就是双引号之间的数据,例如“微学苑”、“http://www.weixueyuan.net”等。在Java中,可以使用下面的方法定义字符串:

  String stringName = "string content";

  例如:

  1. String url = "http://www.weixueyuan.net";

  2. String webName = "微学苑";

  字符串可以通过“+”连接,基本数据类型与字符串进行“+”操作一般也会自动转换为字符串,例如:

  复制纯文本新窗口

  1. public class Demo {

  2. public static void main(String[] args){

  3. String stuName = "小明";

  4. int stuAge = 17;

  5. float stuScore = 92.5f;

  6.

  7. String info = stuName + "的年龄是 " + stuAge + ",成绩是 " + stuScore;

  8. System.out.println(info);

  9. }

  10. }

  运行结果:

  小明的年龄是 17,成绩是 92.5

  String字符串与数组有一个共同点,就是它们被初始化后,长度是不变的,并且内容也不变。如果要改变它的值,就会产生一个新的字符串,如下所示:

  1. String str = "Hello ";

  2. str += "World!";

  这个赋值表达式看起来有点像简单的接龙,在str后面直接加上一个“World!”字符串,形成最后的字符串“Hello World!”。其运行原理是这样的:程序首先产生了str1字符串,并在内存中申请了一段空间。此时要追加新的字符串是不可能的,因为字符串被初始化后,长度是固定的。如果要改变它,只有放弃原来的空间,重新申请能够容纳“Hello World!”字符串的内存空间,然后将“Hello World!”字符串放到内存中。

  实际上,String 是java.lang包下的一个类,按照标准的面向对象的语法,其格式应该为:

  1. String stringName = new String("string content");

  例如:

  1. String url = new String("http://www.weixueyuan.net");

  但是由于String特别常用,所以Java提供了一种简化的语法。

  使用简化语法的另外一个原因是,按照标准的面向对象的语法,在内存使用上存在比较大的浪费。例如String str = new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象str申请的空间。

  字符串操作

  String对象有很多方法,可以方便的操作字符串。

  1) length() 方法

  length() 返回字符串的长度,例如:

  1. String str1 = "微学苑";

  2. String str2 = "weixueyuan";

  3. System.out.println("The lenght of str1 is " + str1.length());

  4. System.out.println("The lenght of str2 is " + str2.length());

  输出结果:

  The lenght of str1 is 3

  The lenght of str2 is 10

  可见,无论是字母、数字,还是汉字,每个字符的长度都是1。

  2) charAt() 方法

  charAt() 方法的作用是按照索引值获得字符串中的指定字符。Java规定,字符串中第一个字符的索引值是0,第二个字符的索引值是1,依次类推。例如:

  1. String str = "123456789";

  2. System.out.println(str.charAt(0) + " " + str.charAt(5) + " " + str.charAt(8));

  输出结果:

  1 6 9

  3) contains() 方法

  contains() 方法用来检测字符串是否包含某个子串,例如:

  1. String str = "weixueyuan";

  2. System.out.println(str.contains("yuan"));

  输出结果:

  true

  4) replace() 方法

  字符串替换,用来替换字符串中所有指定的子串,例如:

  1. String str1 = "The url of weixueyuan is www.weixueyuan.net!";

  2. String str2 = str1.replace("weixueyuan", "微学苑");

  3. System.out.println(str1);

  4. System.out.println(str2);

  输出结果:

  The url of weixueyuan is www.weixueyuan.net!

  The url of 微学苑 is www.微学苑.net!

  注意:replace() 方法不会改变原来的字符串,而是生成一个新的字符串。

  5) split() 方法

  以指定字符串作为分隔符,对当前字符串进行分割,分割的结果是一个数组,例如:

  1. import java.util.*;

  2. public class Demo {

  3. public static void main(String[] args){

  4. String str = "wei_xue_yuan_is_good";

  5. String strArr[] = str.split("_");

  6. System.out.println(Arrays.toString(strArr));

  7. }

  8. }

  运行结果:

  [wei, xue, yuan, is, good](编辑:雷林鹏 来源:网络)

原文地址:https://www.cnblogs.com/pengpeng1208/p/9149776.html

时间: 2024-08-29 19:13:53

[Java学习] Java字符串(String)的相关文章

java学习-关于字符串String

有必要总结记录一下java的学习,否则,永远只是记忆碎片化和always google(费时) 刚好,小伙伴给了一份自己做的review,在学习的过程中,update一下自己的见解和学习内容: 关于String: 1 package string_keywords; 2 /** 3 * 参考url: http://developer.51cto.com/art/201106/266454.htm 4 * 5 * 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.cla

Java 语法 索引 ----- 字符串(String)

组合吃烤串的各种方法 String a = "Hello"; String b = new String(" World"); //在循环里面的话要小心用 String c = a+b; // Hello World a += b; // Hello World String x = "Hello " + "World"; 比较字符串 boolean x = a.equals(b); // compares string bo

Java学习笔记--字符串和文件IO

1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1.1 String类 字符串就是由一系列的字符组成的序列,在很多语言中,比如C语言,将其存储在一个数组中.现在运用Java的思想,就要将字符串视为一个对象,其中Java规定的String类有11个构造方法,同时还有至少40种实现的方法,通过String类的学习,可以很好地了解面向对象的类和对象的思想.

java中的字符串String

一.String简介d 参考:https://www.cnblogs.com/zhangyinhua/p/7689974.html String类代表字符串. java.lang.String: Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例. 字符串String的值在创建后不能被更改 String源码 1 /** String的属性值 */ 2 private final char value[]; 3 4 /** The offset is the firs

.Net学习笔记----字符串string的各种方法

端午节前学到了字符串处理,结果过了个节都忘了,今天拿出来重新过一遍,加深印象 随机输入心中想到的一个名字,然后输出它的字符串长度 //随机输入你心中想到的一个名字,然后输出它的字符串长度 Console.WriteLine("请输入你心中想的那个人的名字"); string name = Console.ReadLine(); Console.WriteLine("这个人的名字是{0}", name.Length); Console.ReadKey(); 两=个学员

Java学习之字符串的创建

转自:http://lavasoft.blog.51cto.com/62575/80034/ Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 一.从根本上认识java.lang.String类和String池 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点.从中可以看到: 1.String类是final的,不可被继承.public final class String.

Java中的字符串-String & StringBuilder

引言: 操作系统课程上学习的生产者消费者模型可以说是学习并发的最好例子.这里需要注意Java不支持进程,只支持多线程.本篇文章将以一个最简单的生产者消费者模型进行Java并发的讲解.学习了本篇博文你应该学会了一下几个内容 1. 多个线程如何正确并发对一个变量进行读和写 2. 生产者消费者模型的实现 Java并发: 上文说了Java中没有进程只有线程,所以Java的并发只涉及到线程.在Java里可以通过两种方法创建一个线程,第一种为继承Thread类,第二种为实现Runnable接口.两种方法个人

Java学习之字符串类

String在Java中是一个类类型(非主类型),是一个不可被继承的final类,而且字符串对象是一个不可变对象.声明的String对象应该被分配到堆中,声明的变量名应该持有的是String对象的引用. 运行期计算得到的字符串会得到一个新的字符串.tag="hel"+tag; 这种现象是Java为了效率而赋予String的特殊性.字符串是不可变的,字符串被分配了空间和初始值后值就不可变化.一旦变化,就会放弃原有的对象而分配新的空间给变化后的字符串.频繁地赋新值,会给程序运行效率带来极大

Java学习笔记之String、StringBuffer和StringBuilder

更多博文可参考我的个人博客:贱贱的梦想 基本概念 String:此类代表字符串常量,它们的值在创建之后不能更改. StringBuffer:是一个线程安全的可变字符序列,它与String一样,在内存中保存的都是一个有序的字符串序列(char类型的数组),不同点是StringBuffer对象的值是可变的. StringBuilder:与StringBuffer类基本相同,都是可变字符串系列,不同点是StringBuilder是线程不安全的. 分析 简单的说,String类型和StringBuild