Java学习总结:飘逸的字符串
Java学习:飘逸的字符串
前言
相信不管我们运用Java语言来开发项目还是进行数据分析处理,都要运用到和字符串相关的处理方法。这个社会处处有着和字符串相关的影子:日志、文档、书籍等。既然我们离不开字符串,那么就来好好认识一下吧。
怎么构造一个字符串?
在Java语言里,有两种方法来创建一个字符串对象:一是用字符串直接量
String message=new String("Welcome to Java");
String message2="Welcome to Java";
二是通过字符数组。
char[] array={'G','o','o','d',' ','D','a','y'};
String message3=new String(array);
注意:String变量存储的是对String对象的引用,String对象里存储的才是字符串的值。所以严格的说,术语String变量、String对象和字符串值是不同的,只是平常我们为了简单起见,都统称为字符串而已。
不可变?字符串这么拽!
String对象是不可变的,它的内容是不能改变的。比如下面的两行代码:
String s="Java";
s="html";
第一条语句创建了内容为“Java”的String对象,并将其引用赋值给s。第二条语句创建了一个内容为“html”的新String对象,并将其赋值给s。所以执行这两条语句之后,两个String的对象都没有改变,并且其中的内容也没有发生变化,只是s变量最后指向了新的String对象。
字符串的比较
一旦看到比较两字,我们想到的是“==”。然而,运算符==只能检测字符串String1和String2是否指向同一个对象,但它不会告诉我们它们的内容是否相同。因此Java里面判断字符串是否相同,我们应该使用equals方法或者compareTo方法。
String s1=new String("Welcome to Java");
String s2="Welcome to Java";
String s3="Welcome to C++";
String s4="welcome TO java";
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s1.compareTo(s2));

补充:当比较两个字符串是否相等的时候,方法equalsIgnoreCase和compareToIgnoreCase可以先忽略字母大小写然后进行比较。
System.out.println(s1.equalsIgnoreCase(s4));
System.out.println(s2.compareToIgnoreCase(s4));

字符串长度、字符和组合字符串
length是String类的一个方法,但它是数组对象的一个属性,所以,我们要获取字符串s的字符个数,就要使用s.length()。方法s.charAt(index)可用于提取字符串s的某个特定字符,其中下标index的取值范围在0到s.length()-1之间。
另外,我们可以使用concat方法连接两个字符串。如下代码所示,将字符串s1和s2连接构成了s3。
String ss="BaiYi";
String ss2="ShaoNian";
String ss3=ss.concat(ss2);
System.out.println(ss3);

当然了,好像平常我们更倾向于更简单的方法,那就是直接使用加号(+)来连接两个或者更多的字符串构成新的字符串。
怎么样获取子串呢?
前面已经提到了我们可以通过charAt方法来获取字符串的任意一个单字符,但是获取它的子串应该怎么办呢?我们就用substring方法。
System.out.println("Welcome to Java".substring(0,11) + "C++");
字符串的转换、替换和分隔方法,学习ing...
toLowerCase:返回将所有字符都转换为小写之后的新字符串
toUpperCase:返回将所有字符都转换为大写之后的新字符串
trim:返回去掉两端的空白字符之后的新字符串
replace:返回用一个新子串替换这个字符串中所有和它匹配的字符的新字符串
replaceFirst:返回用一个新子串替换这个字符串中第一个和它匹配的子串之后的新字符串
replaceAll:返回用一个新子串替换这个字符串中所有和它匹配的子串之后的新字符串
split:返回用定界符分隔的子串所构成的一个字符串数组
System.out.println("Welcome TO".toLowerCase());
System.out.println("Welcome to".toUpperCase());
System.out.println(" Welcome to ".trim());
System.out.println("Welcome to".replace('e','A'));
System.out.println("Welcome to".replaceFirst("e","ABC"));
System.out.println("Welcome to".replaceAll("e","AB"));
String[] str="Java#HTML#C++".split("#",0);
for (int i=0; i<str.length; i++) {
System.out.println(str[i] + " ");
}
String[] str2="Java#HTML&C++".split("[#&]",0);
for (int i=0; i<str2.length; i++) {
System.out.println(str2[i] + " ");
}

Java学习总结:飘逸的字符串的更多相关文章
- java学习,从一个字符串中统计同一类型出现的次数
1.从字符串“AS345asdzf*())sddsWE”中统计大写字母.小写字母.其他类型的出现的次数 String s="AS345asdzf*())sddsWE"; int l ...
- java学习之—栈匹配字符串符号
/** * 栈 * Create by Administrator * 2018/6/11 0011 * 上午 10:20 **/ public class StackR { private int ...
- [ Java学习基础 ] String字符串的基本操作
字符串的拼接 String字符串虽然是不可变的字符串,但也同样可以进行拼接,只是会产生一个新的对象.String字符串拼接的时候可以使用"+"运算符或String的concat(S ...
- 【原】Java学习笔记022 - 字符串
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 字符串 // 定义 ...
- 我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文
今天看到一个工具类使用正则表达式将一大段字符串中的中文和英文都分离出来了,在此记录一下,读者可以收藏! import java.util.ArrayList; import java.util.Col ...
- Java学习:字符串概述与特点
字符串概述与特点 java.lang.String类 代表字符串 API当中说:Java程序中的所有字符串字面值(如“abc“)都作为此类的实例实现.其实就是说:程序当中所用的双引号字符串,都是Str ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
随机推荐
- sencha panel的头header上添加刷新按钮
var plet3=Ext.create('portaltest3.view.Portlet', { title: '提醒', ...
- vs2012中怎样设为起始页,怎样取消
把你要设为起始页的文件右键选择为起始页,如下:
- 重新想象 Windows 8.1 Store Apps (80) - 控件增强: WebView 之基本应用, POST 数据, 与 JavaScript 交互
[源码下载] 重新想象 Windows 8.1 Store Apps (80) - 控件增强: WebView 之基本应用, POST 数据, 与 JavaScript 交互 作者:webabcd 介 ...
- 使用PushSharp进行IOS发布应用的消息推送
在做.NET向IOS设备的App进行消息推送时候,采用的是PushSharp开源类库进行消息的推送,而在开发过程中,采用的是测试版本的app,使用的是测试的p12证书采用的是ApnsConfigura ...
- LGLProgressHUD
不想用第三方的指示器,感觉有点大,自己写了一个简单的活动指示器,目前只有两种效果.效果如图 第一种: 第二种 第二种可以随着提示文字的增多而变长 LGLProgressHUD.h // // LGLP ...
- LinkedList的实现源码分析
LinkedList 以双向链表实现.链表无容量限制,但双向链表本身使用了更多空间,也需要额外的链表指针操作. 按下标访问元素--get(i)/set(i,e) 要悲剧的遍历链表将指针移动到位(如果i ...
- RAID选项
RAID:Redundant Array Independent Disk(独立磁盘构成的具有冗余能力的阵列) 最常见的为RAID类型为:0,1,5和10:3和6很少见,但在某些环境中仍然有用. RA ...
- New Valid Tracking Metric Now Available in Seller Central
On July 7, Amazon added Valid Tracking Rate as a new metric in Seller Central. This metric shows the ...
- jQuery高级技巧——DOM操作篇
页面加载之DOMReady事件 所谓domReady,也就是文档就绪,我们都知道,在操作dom时必须要在dom树加载完成后才能进行操作.如何检测DOM树已经构建完成,以下是一些实现的方式: 1.使 ...
- KindEditor编辑器在ASP.NET中的使用
KindEditor编辑器在ASP.NET中的使用 最近做的项目中都有用到富文本编辑器,一直在寻找最后用的富文本编辑器,之前用过CKEditor,也用过UEditor,这次打算用 一下KindEdit ...