Java学习总结:飘逸的字符串

Java学习:飘逸的字符串

前言

相信不管我们运用Java语言来开发项目还是进行数据分析处理,都要运用到和字符串相关的处理方法。这个社会处处有着和字符串相关的影子:日志、文档、书籍等。既然我们离不开字符串,那么就来好好认识一下吧。

怎么构造一个字符串?

在Java语言里,有两种方法来创建一个字符串对象:一是用字符串直接量

1 String message=new String("Welcome to Java");
2 String message2="Welcome to Java";

二是通过字符数组。

1 char[] array={‘G‘,‘o‘,‘o‘,‘d‘,‘ ‘,‘D‘,‘a‘,‘y‘};
2 String message3=new String(array);

注意:String变量存储的是对String对象的引用,String对象里存储的才是字符串的值。所以严格的说,术语String变量、String对象和字符串值是不同的,只是平常我们为了简单起见,都统称为字符串而已。

不可变?字符串这么拽!

String对象是不可变的,它的内容是不能改变的。比如下面的两行代码:

1 String s="Java";
2 s="html";

第一条语句创建了内容为“Java”的String对象,并将其引用赋值给s。第二条语句创建了一个内容为“html”的新String对象,并将其赋值给s。所以执行这两条语句之后,两个String的对象都没有改变,并且其中的内容也没有发生变化,只是s变量最后指向了新的String对象。

字符串的比较

一旦看到比较两字,我们想到的是“==”。然而,运算符==只能检测字符串String1和String2是否指向同一个对象,但它不会告诉我们它们的内容是否相同。因此Java里面判断字符串是否相同,我们应该使用equals方法或者compareTo方法。

1 String s1=new String("Welcome to Java");
2 String s2="Welcome to Java";
3 String s3="Welcome to C++";
4 String s4="welcome TO java";
5 System.out.println(s1.equals(s2));
6 System.out.println(s1.equals(s3));
7 System.out.println(s1.compareTo(s2));

补充:当比较两个字符串是否相等的时候,方法equalsIgnoreCase和compareToIgnoreCase可以先忽略字母大小写然后进行比较。

1 System.out.println(s1.equalsIgnoreCase(s4));
2 System.out.println(s2.compareToIgnoreCase(s4));

字符串长度、字符和组合字符串

length是String类的一个方法,但它是数组对象的一个属性,所以,我们要获取字符串s的字符个数,就要使用s.length()。方法s.charAt(index)可用于提取字符串s的某个特定字符,其中下标index的取值范围在0到s.length()-1之间。

另外,我们可以使用concat方法连接两个字符串。如下代码所示,将字符串s1和s2连接构成了s3。

1 String ss="BaiYi";
2 String ss2="ShaoNian";
3 String ss3=ss.concat(ss2);
4 System.out.println(ss3);

当然了,好像平常我们更倾向于更简单的方法,那就是直接使用加号(+)来连接两个或者更多的字符串构成新的字符串。

怎么样获取子串呢?

前面已经提到了我们可以通过charAt方法来获取字符串的任意一个单字符,但是获取它的子串应该怎么办呢?我们就用substring方法。

1 System.out.println("Welcome to Java".substring(0,11) + "C++");

字符串的转换、替换和分隔方法,学习ing...

toLowerCase:返回将所有字符都转换为小写之后的新字符串

toUpperCase:返回将所有字符都转换为大写之后的新字符串

trim:返回去掉两端的空白字符之后的新字符串

replace:返回用一个新子串替换这个字符串中所有和它匹配的字符的新字符串

replaceFirst:返回用一个新子串替换这个字符串中第一个和它匹配的子串之后的新字符串

replaceAll:返回用一个新子串替换这个字符串中所有和它匹配的子串之后的新字符串

split:返回用定界符分隔的子串所构成的一个字符串数组

 1 System.out.println("Welcome TO".toLowerCase());
 2 System.out.println("Welcome to".toUpperCase());
 3 System.out.println(" Welcome to ".trim());
 4 System.out.println("Welcome to".replace(‘e‘,‘A‘));
 5 System.out.println("Welcome to".replaceFirst("e","ABC"));
 6 System.out.println("Welcome to".replaceAll("e","AB"));
 7
 8 String[] str="Java#HTML#C++".split("#",0);
 9 for (int i=0; i<str.length; i++) {
10     System.out.println(str[i] + " ");
11 }
12 String[] str2="Java#HTML&C++".split("[#&]",0);
13 for (int i=0; i<str2.length; i++) {
14     System.out.println(str2[i] + " ");
15 }

时间: 2024-08-28 06:13:58

Java学习总结:飘逸的字符串的相关文章

java学习之数字与字符串

java学习是根据how2j上提供的资料进行整理,如有雷同,很是正常. 封装类 所有的基本类型,都有对应的封装类. 数字封装类 数字封装类有Byte,Short,Integer,Long,Float,Double,这些类都是抽象类Number的字类.比如int的封装类是Integer,Integer就叫做封装类. 那基本类型如何转化为封装类. public class TestNumber{ public static void main(String[] args){ int i = 1; /

java学习,从一个字符串中统计同一类型出现的次数

1.从字符串“AS345asdzf*())sddsWE”中统计大写字母.小写字母.其他类型的出现的次数 String s="AS345asdzf*())sddsWE"; int l = 0,b=0,o=0; for(int i=0;i<s.length();i++){ char t= s.charAt(i);//charAt返回索引值 if(t>='a'&&t<='z'){//判断是否为小写字母 l++; }else if(t>='A'&

Java学习笔记—第九章 字符串String

第九章 字符串String Java中使用String类来创建一个字符串变量,字符串变量是类类型变量,是一个对象.声明字符串的语法格式如下:String s; 创建字符串:通过String类提供的构造方法可创建字符串,有以下几种方式: (1)创建字符串对象时直接赋值,例如: String s1 = "hello"; String s2 = new String("hello"); (2)由一个字符串创建另一个字符串,例如: String s1 = "hel

java学习系列之二---字符串(char.String.StringBuilder以及StringBuffer)

一.String 1.String:字符串常量,字符串长度不可变.Java中String是immutable(不可变)的.String类是被final修饰 2.String str="hello world"和String str=new String("hello world")的区别 public class Main {              public static void main(String[] args) {         String s

Java学习-----02.数组和字符串

数组: 数组的定义: 声明数组.分配空间.赋值 数组对象的创建: 元素为引用数据类型的数组: 二维数组: 二维数组初始化: 复制数组: arraycopy()方法 字符串: java.long.String 类,不可变字符序列 类常用方法: public char charAt(int index) 返回字符串中第index个字符. public int length() 返回字符串的长度. public int indexOf(String str) 返回字符串中出现str的第一个位置 pub

【Java学习】获取一个字符串在另一个字符串出现的次数

public class StringCount {     public static void main(String[] args) {         String ss = "kkabkkcdkkefkkskk";         String key = "kk";         System.out.println(getSubCount_2(ss,key));     }     public static int getSubCount_2(St

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学习笔记_18_字符串、包装类、原始数据类剪得转换

18. 字符串.包装类.原始数据类剪得转换: 各个转换如下: 1>String 转换成Integer: Integer integer = new Integer("string");或 Integer Integer = Integer.valueOf(String): 注:String必须是数字字符串,如:"1232". 2>Integer 转换成String: String str = Integer.toString(); 3>Intege

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入