要点Java17 String
字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。
创建字符串
创建字符串最简单的方式例如以下:
String greeting = "Hello world!";
在代码中遇到字符串常量时,这里的值是"Hello world!",编译器会使用该值创建一个String对象。
和其他对象一样,能够使用keyword和构造方法来创建String对象。
String类有11种构造方法,这些方法提供不同的參数来初始化字符串,比方提供一个字符数组參数:
public class StringDemo{
public static void main(String args[]){
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'};
String helloString = new String(helloArray);
System.out.println( helloString );
}
}
以上实例编译执行结果例如以下:
hello.
注意:String类是不可改变的final类,所以你一旦创建了String对象,那它的值就无法改变了。 假设须要对字符串做非常多改动,那么应该选择使用StringBuffer & StringBuilder 类。
经常用法
- char charAt(int index) 返回指定索引处的 char 值。
- static String copyValueOf(char[] data) 返回指定数组中表示该字符序列的 String。
- boolean endsWith(String suffix) 測试此字符串是否以指定的后缀结束。
- boolean equals(Object anObject) 将此字符串与指定的对象比較。
- boolean equalsIgnoreCase(String anotherString) 将此 String 与还有一个 String 比較,不考虑大写和小写。
- byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
- byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
- int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
- int indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引開始搜索。
- int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
- int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。
- int length() 返回此字符串的长度。
- boolean matches(String regex)告知此字符串是否匹配给定的正則表達式。
- String replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的全部 oldChar 得到的。
- String replaceAll(String regex, String replacement使用给定的 replacement 替换此字符串全部匹配给定的正則表達式的子字符串。
- String[] split(String regex) 依据给定正則表達式的匹配拆分此字符串。
- String[] split(String regex, int limit) 依据匹配给定的正則表達式来拆分此字符串。
- boolean startsWith(String prefix) 測试此字符串是否以指定的前缀開始。
- String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
- String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。
- String toLowerCase() 使用默认语言环境的规则将此 String 中的全部字符都转换为小写。
- String toUpperCase() 使用默认语言环境的规则将此 String 中的全部字符都转换为大写。
- String trim() 返回字符串的副本,忽略前导空白和尾部空白。
- static String format(String format,Object... args) 使用指定的格式字符串和參数返回一个格式化字符串。
常见题目(使用JUnit演示)
@Test
public void testEquels(){
String test = "12345";
String test1 = "12345";
String test2 = new String("12345");
String test3 = new String("12345");
String t1 = test;
String t2 = "12"+"345";
assertTrue(test==test1);
assertTrue(test==t1);
assertTrue(test==t2);
assertTrue(test!=test2);
assertTrue(test2!=test3);
}
@Test
public void testNotChange(){
String inString = "123";
String outString = stubChangeString(inString);
assertEquals("123", inString);
assertEquals("123test", outString);
}
private String stubChangeString(String inString){
inString += "test";
return inString;
}
@Test
public void testSubString() {
String test = "12345";
assertEquals("2345", test.substring(1));
}
@Test
public void testToArrays() {
List<String> ids = new ArrayList<>();
ids.add("1");
ids.add("2");
ids.add("3");
String[] id = ids.toArray(new String[0]);
assertEquals(3, id.length);
assertEquals("1", id[0]);
}
你也能够訪问:http://txidol.github.io 获取很多其它的信息
要点Java17 String的更多相关文章
- Java容器深入浅出之String、StringBuffer、StringBuilder
对字符串的花式处理一直是现代应用系统的主要操作之一,也是对Java基础知识考察的重要方面.事实上,Java字符串类的底层是通过数组来实现的.具体来说,String类是固定长度的数组,StringBuf ...
- C/C++在Java项目、Android和Objective-C三大平台下实现混合编程
Android和iOS开发都支持C++开发,可以一套代码多平台使用.同时C++难以反编译的特性也可以为Android开发带来代码的保密,另一native特性也可以提高代码的运行效率. 一.为什么使用C ...
- Java基础知识点(一)
前言:本篇随笔,主要记录Java的基础知识点,不管是用于项目或者面试中,笔者认为都非常有用,所以将持续更新...... 1.Java的访问权限 Java中有四种访问权限:默认访问权限.public.p ...
- 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件
一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...
- PAT甲级——1140.Look-and-say Sequence (20分)
Look-and-say sequence is a sequence of integers as the following: D, D1, D111, D113, D11231, D112213 ...
- Java成长记录第二集--基础重点
第一篇写的博客给自己的学习路线立了个flag后,感觉现在学习的积极性大增,这也离不开那几位老铁们的互相鼓励.废话不多说,现在给出自己总结的Java基础部分所要重点注意的内容,对以后的开发工作也是很常用 ...
- hive中同列多行数据组合的方法以及array to string要点(行转列)
1. 同列多行数据组合成一个字段cell的方法, top N 问题的hive方案 如下: hive 列转行 to json与to array list set等复杂结构,hive topN的提取的窗口 ...
- java中的String要点解析
String类使我们经常使用的一个类,经常用来表示字符串常量. 字符串一旦被创建赋值,就不能被改变,因为String 底层是数组实现的,且被定义成final类型.我们可以看String源码. /** ...
- C 风格字符串、string 类要点总结
1. C风格字符串 1.1 其它 头文件<cstring> 特殊性质:C风格字符串以空字符\0结尾 1.2 读取一行的区别 1.2.1 cin.getline(array1,n,char) ...
随机推荐
- OpenReports中文支持方案
此文章在<OpenReports中文支持完全解决方案.doc>的基础上做优化,并贴出代码.已测试通过. 一.主要解决的问题 1 页面显示支持中文 2 与服务器或数据库的交互支持中文 3 查 ...
- 高性能WEB开发(6) - web性能測试工具推荐
WEB性能測试工具主要分为三种.一种是測试页面资源载入速度的,一种是測试页面载入完成后页面呈现.JS操作速度的,另一种是整体上对页面进行评价分析,以下分别对这些工具进行介绍,假设谁有更好的工具也请一起 ...
- php字符串标点等字符截取不乱吗 封装方法
方法一: /** +---------------------------------------------------------- * 功能:字符串截取指定长度 * leo.li hen ...
- EffectiveC#16--垃圾最小化
1.申请和释放一个基于堆内存的对象要花上更多的处理器时间. 所以当一个引用类型的局部变量在常规的函数调用中使用的非常频繁时应该把它提升为对象的成员(方法一) 2.当你把一个实现了IDisposable ...
- css-布局1-基本属性
<!DOCTYPE html>CSS4-布局1-基本属性 属性:displayvisibilityfloatclear HTML元素类型:行内元素,块级元素 块级元素:最大的区别:换行行内 ...
- C# Winform WindowsMediaPlayer控件
要做一个视频无缝切换的程序,所谓无缝就是在一个视频结束时立即开始另一个视频,中间不要有切换的黑屏 实现思路是放两个wmp播放控件,其中每个时刻只有一个在播放,另外一个处于暂停状态,并隐藏 当一个视频播 ...
- 第二章 Android Studio使用第三方模拟器
1.为什么要使用第三方模拟器 Android Studio自带模拟器,相对Eclipse来说项目启动速度的确快了很多倍,提高了开发效率.但和第三方模拟器进行对比的话,还是第三方的模拟器运行速度更快些. ...
- 通过XSLT转换XML
Hello,every body.又与大家见面了,哈哈.今天我与大家分享一下XSLT,XSL,XML,XPath.因为项目中有些功能用到了XSLT.XML等技术.所以今天好好研究了一下这几个方面的技术 ...
- 7、Khala设备资源的申请和释放
在实际业务中,我们每次登录后,可能需要在服务端维护一些设备相关的资源信息,而不同设备所需维护的资源信息又不尽相同.Khala提供了设备资源的维护储存功能,在此我们通过一个具体的业务中对其进行展示. 一 ...
- (转) Dynamic memory
In the programs seen in previous chapters, all memory needs were determined before program executi ...