第六章 String

6 String


6.1、String的特点

String s="abc";s是类类型变量,“abc”是一个对象

字符串一旦被初始化就不可以被改变

String s1=new String("abc");

s和s1有什么区别:

s在内存中有一个对象,s1在内存中有两个对象

6.2 常用方法

1、获取

int length();获取长度

char charAt(int index);根据位置,获取该位置上的字符

int indexOf(int ch);根据ch字符获取该字符在字符串中第一次出现的位置

int indexOf(int ch,int formIndex);从formIndex指定位置开始,获取ch字符在字符串出现的位置

int indexOf(String s);根据s获取在字符串中第一次出现的位置

int indexOf(String s,int formIndex);从formIndex指定位置开始,获取s在字符串出现的位置

当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException

如果没有找到,返回-1

int lasetIndexOf();从字符串最后位置反向查找位置,用法同IndexOf相同。

2、判断

boolean startWith(String str);字符串是否以str开头

boolean endsWith(String str);字符串是否以str结尾

boolean isEmpty();字符串是否为空

boolean contains(String str);字符串是否包含str

boolean equals(String str);判断字符串内容是否相同

boolean equalsIgnoreCase(String str);忽略大小写判断字符串是否相同

3、转换

字符数组转成字符串:

构造函数:String(char[])

String(char[],offset,count)将字符数组中的一部分转成字符串

静态方法:static String copyValueOf(char[] data);

static String copyValueOf(char[] data,int offset,int count);

字节数组转成字符串:

构造函数:String(byte[])

String(byte[],offset,count)将字符数组中的一部分转成字符串

基本数据类转成字符串:

static String valueOf(int);

static String valueOf(double);

字符串转成字符数组/字节数组:

char[] toCharArray();

byte[] getBytes();

4、替换

String replace(oldchar,newchar);

如果要替换的字符不存在,返回的还是原来的字符串

String replace(oldstr,newstr);替换字符串

5、切割

String[] split(regex);

6、子串

String substring(begin);

String substring(begin,end);包含头,不包含尾

获取字符串中的一部分

7、转换

String toUpperCase();String toLowerCase();字符串转成大写或小写

String trim();去除字符串两端的空格

int compareTo(String);对两个字符串进行自然顺序的比较

6.3 StringBuffer

StringBuffer是一个容器,长度可变,可以对字符串内容进行修改

1、增删插

StringBuffer append();将制定数据作为参数添加到已有数据的结尾处

StringBuffer insert(index,data);可以将数据添加到指定位置

StringBuffer delete(int start,int end);删除数据,包含start不包含end

StringBuffer deleteCharAt(int index);删除指定位置的字符

2、获取字符串的位置:

int indexOf(String s);

int lastIndexOf(String s);

int length();获取长度

3、定位

char charAt(int index);获取指定位置的字符:

StringBuffer replace(int start,int end,String s);从开始位置到结束位置,替换成s

void setCharAt(int index,char ch);设置指定位置的字符

4、JDK 1.5版本之后出现了StringBuilder

StringBuffer是线程同步

StringBuilder是线程不同步

6.4 基本数据类型对象包装类

基本数据    包装类

byte            Byte

short           Short

long            Long

int               Integer

boolean      Boolean

float            Float

double        Double

char            Character

1、最常见作用:

基本数据类型和字符串之间的转换

2、 基本数据类型转成字符串

基本数据类型+"";

包装类.toString(基本数据类型值);

如:Integer.toString(36);//将36变成“36”

3、字符串转成基本数据类型

static 包装类.parse基本数据类型(String s);

对象.基本数据类型Value();

6.5 十进制和其它进制互转

1、十进制转成其它进制

toBinaryString();转二进制

toHexString();转八进制

toOctalString();转十六进制

2、其它进制转成十进制

parseInt(String,radix);

6.6 新特性

Integer x = 4;自动装箱,4相当于new Integer(4)

x = x +2;自动拆箱,将x变成int类型进行运算后,在进行装箱赋给x

Integer m = 128;

Integer n = 128;

m==n;//结果位false

Integer a = 127;

Integer b = 127;

a==b;//结果为true,因为a和b指向了同一个Integer对象。当数值爱byte范围内,如果该数值已经存在,则不会再开辟新空间。

时间: 2024-10-10 07:22:19

第六章 String的相关文章

第六章 String类型

1 构造String类型 string str1=new string('c',3); //str1="ccc" char[] chs=new char[]{'c','a','t','o','o','n'}; string str2=new string(chs);//str2="catoon"; string str3=new string(chs,0,3);//str3="cat"; 2 String类的字段.属性和索引函数 --String

C++ Primer Plus 第六版 第16章 string类和标准模板库

1.string实际上是模板具体化basic_string<char> 的一个typedef,有默认参数,所以省略了初始化参数 2.size_type是一个依赖于实现的整形 string将string::npos定义为字符串的最大长度 3.string类的构造函数P656 4.对于c-风格字符串,3种输入方法:cin>>   cin.getline(),cin.get 对于string   ,2种输入方法:cin>>,getline(cin,string对象) 5.st

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片:多对多关系(上)

这章介绍了怎样创建一个新的实体来管理图片,怎样使用HTML窗体来上传图片文件和使用多对多关系来使它们与产品相关,并且怎样来保存图片到文件系统中.这章也介绍了更多复杂的错误处理增加客户端错误到模型中为了把它们显示回给用户.在这章中播种数据库使用的产品图片可能在在第六章的从Apress网页站点下载代码中. 注意:如果你想遵从这章的代码,你必须完成第五章的代码或者从www.apress.com下载第五章的源代码作为一个起点. 创建实体保存图片文件名 这个项目,我们正要使用文件系统在Web项目中存储图片

第六章,使用Internet资源的一个问题

今天第六章里的示例代码,运行不起来.提示没有引用的对象. 添附代码片段 private void refreshEarthquakes() {    // Get the XML    URL url;    try {      String quakeFeed = getString(R.string.quake_feed);      url = new URL(quakeFeed); URLConnection connection;      connection = url.open

C和指针 (pointers on C)——第六章:指针(下)习题

有一定的难度,作者只做了前三题! 题目请见 http://download.csdn.net/download/wangpegasus/5701765 1. char *find_char(char const *source, char const *chars) { char *ptr; if(source != NULL && chars != NULL) { for (; *source != '\0'; source++) { for (ptr = (char *) chars;

【python核心编程】第六章 序列

1.操作符 (1)成员关系操作符:in .not in >>> string ='abcdefg'>>> 'a' in stringTrue>>> 'h' in stringFalse>>> 'h' not in stringTrue *补充知识*:string模块 >>> import string>>> string.uppercase        #大写字母'ABCDEFGHIJKLMNOP

C Primer Plus (第五版) 第十六章 C预处理器和C库 编程练习

第十六章 C预处理器和C库 开发一个包含您需要使用的预处理器定义的头文件 //max.h  #ifndef _MAX_H_     #define _MAX_H_     #define MAX(X, Y) ((X)>(Y)?(X):(Y)) #endif 2.两个数的调和平均数可用如下方法得到:首先对两数的倒数取平均值,最后再取倒数.使用#define指令定义一个宏"函数"执行这个运算.编写一个简单的程序测试该宏. #include <stdio.h> #defin

《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章  继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章将帮助你解决许多常见的.复杂的建模问题,并解决你可能在现实中遇到的建模问题. 本章以多对多关系开始,这个类型的关系,无论是在现存系统还是新项目的建模中都非常普遍.接下来,我们会了解自引用关系,并探索获取嵌套对象图的各种策略.最后,本章以继承的高级建模和实体条件结束. 6-1  获取多对多关联中的链接表 问题

C语言笔记(谭版 第六章~末)

第六章       利用数组批量处理数据 数组是一组有序数据的集合,数组中的每一个元素都属于同一数据类型. 算是一种数据的组织结构.初现结构端倪. 一维数组 定义: 类型符 数组名[常量表达式]  数组名命名遵行标示符命名规则 C语言中不允许对数组的大小作动态定义. 说明:如果在被调用函数中定义数组,其长度可以是变量或非常量表达式.实参.此情况称为可变长数组.若数组指定为静态存储方式,此方式不合法. 引用: 数组名[下标] 下标是常量或常量表达式   序号从0开始计起. 初始化:初始化列表  i