黑马程序员 Java常用类(String,StringBuffer,其他类)
来源:互联网 发布:地图标识软件 编辑:程序博客网 时间:2024/05/18 03:33
------- android培训、java培训、java学习型技术博客、期待与您交流! ----------
String类
String是java中的字符串。
String对象是System.Char 对象的有序集合,用于表示字符串。
String对象的值是该有序集合的内容,并且该值是不可变的。
String最大的特点
String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。
String类是用于描述字符串的类。
它提供了多个方法对字符串进行操作。
1,获取。
1.1字符串中的包含的字符数,也就是字符串的长度。
intlength():获取长度。
1.2根据位置获取位置上某个字符。
charcharAt(int index):
1.3根据字符获取字符在字符串中第一次出现的位置。
intindexOf(int ch):
intindexOf(int ch, int fromIndex):从fromIndex指定位置开始获取
intindexOf(String str):
intindexOf(String str, int fromIndex):从fromIndex指定位置开始获取
1.4根据字符获取字符在字符串中最后一次出现的位置。
intlastIndexOf(int ch):
intlastIndexOf(int ch, int fromIndex) 从fromIndex指定位置开始获取
intlastIndexOf(String str)
intlastIndexOf(String str, int fromIndex) 从fromIndex指定位置开始获取
1.5获取字符串中一部分字符串。也叫子串.
Stringsubstring(int beginIndex, int endIndex) 包含begin 不包含end
Stringsubstring(int beginIndex);
2,判断。
2.1字符串中是否包含某一个子串。
booleancontains(str):
也可以使用indexOf(str),
if(str.indexOf("abc")!=-1)既可以判断是否包含,又可以获取出现的位置。
2.2字符中是否有内容。
booleanisEmpty(): 原理就是判断长度是否为0.
2.3字符串是否是以指定内容开头。
booleanstartsWith(str);
2.4字符串是否是以指定内容结尾。
booleanendsWith(str);
2.5判断字符串内容是否相同。 复写了Object类中的equals方法。
booleanequals(str);
2.6判断内容是否相同,并忽略大小写。
booleanequalsIgnoreCase();
3,转换。
3.1将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串。
静态方法:static StringcopyValueOf(char[]);
static String copyValueOf(char[] data, intoffset, int count)
static String valueOf(char[]):
3.2将字符串转成字符数组。
char[]toCharArray():
3.3将字符串转成字节数组。
byte[] getBytes():
3.4将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
3.5将基本数据类型转成字符串。
staticString valueOf(int)
staticString valueOf(double)
//简单方法:3+"";
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4,替换
Stringreplace(oldchar,newchar);
5,切割
String[]split(regex);
6,子串。获取字符串中的一部分。
Stringsubstring(begin);
Stringsubstring(begin,end);
7,转换,去除空格,比较。
7.1将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
7.2将字符串两端的多个空格去除。
Stringtrim();
7.3对两个字符串进行自然顺序的比较。
intcompareTo(string);
StringBuffer
字符串缓冲区。是一个容器。
特点:
1,长度是可变化的。
2,可以字节操作多个数据类型。
3,最终会通过toString方法变成字符串。
1,存储。
StringBufferappend():将指定数据作为参数添加到已有数据结尾处。
StringBufferinsert(index,数据):可以将数据插入到指定index位置。
2,删除。
StringBufferdelete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBufferdeleteCharAt(index):删除指定位置的字符。
3,获取。
charcharAt(int index)
intindexOf(String str)
intlastIndexOf(String str)
intlength()
Stringsubstring(int start, int end)
4,修改。
StringBufferreplace(start,end,string);
voidsetCharAt(int index, char ch) ;
5,反转。
StringBufferreverse();
6,将缓冲区中指定数据存储到指定字符数组中。
voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
StringBuilder
JDK1.5版本之后出现了StringBuilder.
StringBuffer是线程同步。
StringBuilder是线程不同步。
以后开发,建议使用StringBuilder
升级三个因素:
1,提高效率。
2,简化书写。
3,提高安全性。
基本数据类型对象包装类
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串。
基本数据类型+""
基本数据类型.toString(基本数据类型值);
如: Integer.toString(34);//将34整数变成"34";
字符串转成基本数据类型。
xxxa = Xxx.parseXxx(String);
inta = Integer.parseInt("123");
doubleb = Double.parseDouble("12.23");
booleanb = Boolean.parseBoolean("true");
Integeri = new Integer("123");
intnum = i.intValue();
十进制转成其他进制。
toBinaryString();
toHexString();
toOctalString();
其他进制转成十进制。
parseInt(string,radix);
JDK1.5版本以后出现的新特性
基本数据的自动拆箱与装箱:
class IntegerDemo1{ publicstatic void main(String[] args) { //Integerx = new Integer(4); Integerx = 4;// x自动装箱的过程就是:newInteger(4) x= x + 2;// x自动拆箱,拆箱方法:x.intValue();x变成了int类型。和2进行加法运算,再将和进行装箱赋给x。 Integerm = 128; Integern = 128; sop("m==n:"+(m==n));//结果为false。因为超出了范围 /*当数值在byte(-127~128)范围内,对于新特性, 如果该数值已经存在,则不会在开辟新的空间。*/ Integera = 127; Integerb = 127; sop("a==b:"+(a==b));//结果为true。因为a和b指向了同一个Integer对象。 }}
System类
在System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;
加载文件和库的方法;还有快速复制数组的一部分的实用方法。
System类中的方法和属性都是静态的。
out:标准输出,默认是控制台。
in:标准输入,默认是键盘。
获取系统属性信息:Properties getProperties();
示例代码:
import java.util.*;class SystemDemo{ publicstatic void main(String[] args) { Propertiesprop = System.getProperties(); //因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。 //那么可以通过map的方法取出该集合中的元素。 //该集合中存储都是字符串。没有泛型定义。 //如何在系统中自定义一些特有信息呢? System.setProperty("mykey","myvalue"); //获取指定属性信息。 Stringvalue = System.getProperty("os.name"); System.out.println("value="+value); //可不可以在jvm启动时,动态加载一些属性信息呢? Stringv = System.getProperty("haha"); System.out.println("v="+v); /* //获取所有属性信息。 for(Objectobj : prop.keySet()) { Stringvalue = (String)prop.get(obj); System.out.println(obj+"::"+value); } */ }}
Runtime类
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
可以通过 getRuntime 方法获取当前运行时。
该类并没有提供构造函数。
但是发现该类中还有非静态方法。
说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。
由这个特点可以看出该类使用了单例设计模式完成。
该方式是static Runtime getRuntime();
示例代码:
class RuntimeDemo{ publicstatic void main(String[] args) throws Exception { //获得Runtime对象 Runtimer = Runtime.getRuntime(); //调用方法,通过记事本打开SystemDemo.java文件 Processp = r.exec("notepad.exe SystemDemo.java"); //Thread.sleep(4000); //p.destroy();杀掉进程 }} Date类 类 Date 表示特定的瞬间,精确到毫秒。 import java.util.*;import java.text.*;class DateDemo{ publicstatic void main(String[] args) { Dated = new Date(); System.out.println(d);//打印的时间看不懂,希望有些格式。 //将模式封装到SimpleDateformat对象中。 SimpleDateFormatsdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss"); //调用format方法让模式格式化指定Date对象。 Stringtime = sdf.format(d); System.out.println("time="+time); longl = System.currentTimeMillis(); Dated1 = new Date(l); System.out.println("d1:"+d1); }}
Calendar类
Calendar对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值。
示例代码:
/*两个练习:1,获取任意年的二月有多少天。 思路:根据指定年设置一个时间就是 c.set(year,2,1)//某一年的3月1日。 c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。 2,获取昨天的现在这个时刻。 c.add(Calenar.DAY_OF_MONTH,-1);*/import java.util.*;class CalendarDemo2{ publicstatic void main(String[] args) { Calendarc = Calendar.getInstance(); //c.set(2012,2,23); c.add(Calendar.DAY_OF_MONTH,-18); printCalendar(c); } publicstatic void printCalendar(Calendar c) { String[]mons = {"一月","二月","三月","四月" ,"五月","六月","七月","八月" ,"九月","十月","十一月","十二月"}; String[]weeks = { "","星期日","星期一","星期二","星期三","星期四","星期五","星期六", }; intindex = c.get(Calendar.MONTH); intindex1 = c.get(Calendar.DAY_OF_WEEK); sop(c.get(Calendar.YEAR)+"年"); //sop((c.get(Calendar.MONTH)+1)+"月"); sop(mons[index]); sop(c.get(Calendar.DAY_OF_MONTH)+"日"); //sop("星期"+c.get(Calendar.DAY_OF_WEEK)); sop(weeks[index1]); } publicstatic void sop(Object obj) { System.out.println(obj); }}
Math类
Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
示例代码:
import java.util.*;class MathDemo{ publicstatic void main(String[] args) { Randomr = new Random(); for(intx=0; x<10; x++) { //intd = (int)(Math.random()*10+1); intd = r.nextInt(10)+1; sop(d); } } publicstatic void show() { doubled = Math.ceil(16.34);//ceil返回大于指定数据的最小整数。 doubled1 = Math.floor(12.34);//floor返回小于指定数据的最大整数。 longl = Math.round(12.54);//四舍五入 sop("d="+d); sop("d1="+d1); sop("l="+l); doubled2 = Math.pow(2,3); sop("d2="+d2); } publicstatic void sop(Object obj) { System.out.println(obj); }}
- 黑马程序员 Java常用类(String,StringBuffer,其他类)
- 黑马程序员-String类、StringBuffer
- 黑马程序员------常用类之String和StringBuffer
- 黑马程序员 常用对象API-- String类、Stringbuffer、StringBuilder总结
- 黑马程序员—常用String类和StringBuffer
- 黑马程序员_常用类String&StringBuffer&Math&Random等等
- 黑马程序员《常用对象API string类 stringbuffer、stringBuilder》
- 黑马程序员之java中操作字符串的常用类String和StringBuffer学习
- 黑马程序员——java-几个常用的类(Object,Scanner,String,StringBuffer/StringBuilder)
- 黑马程序员—JAVA基础—String类、StringBuffer类
- 黑马程序员-JAVA基础-String类与StringBuffer容器
- 黑马程序员:Java基础总结----string类&stringbuffer
- 黑马程序员------java基础String类与StringBuffer
- 黑马程序员——Java基础---String类和StringBuffer
- 黑马程序员----JAVA----String类常用方法----
- 黑马程序员:String类和StringBuffer类
- 黑马程序员--String类和StringBuffer类
- 黑马程序员---String类及StringBuffer
- Win7 下支持多次双击打开dsw文件 及 修改dsw图标
- 三维显示软件制作--概述
- 基于cocos2d-x引擎的游戏框架设计
- 关于Objective-c内存管理的一些笔记
- Oracle归档模式与非归档模式设置
- 黑马程序员 Java常用类(String,StringBuffer,其他类)
- FreeBSD 9.1编译内核的优化选项分析
- 常见排序算法(冒泡,选择,快速)的C语言实现
- fibnacci数列递归算法及改进
- eclipse 配置tomcat
- [TC SRM 571] DIV1 1000
- 表的查询
- hello world!
- 调户口和档案进京的流程