一:字符串 String类和StringBuffer类
(1)初始化方法:
String s1 = “abs”
第二种是用String类的构造方法来申明:
String s1 = new String();
String s2 = new String("aa");
char[] c = {'a','b','c','d'};
String s3 = new String(c);
(2)String类的一些常用方法(共18种):
3int:
int indexOf(int ch)
int lastIndexOf(int ch)
int lenth()
2char:
char charAt(int index)
char[] toCharArray()
5boolean :
boolean endsWith(String suffix)
boolean equals(Object anObject)----String类覆盖了object类的equals方法
boolean isEmpty()
boolean startsWith(String prefix)
boolean contains(CharSequence cs)---是否包含指定的字符序列
8String
String toLowerCase()
String toUpperCase()
String valueOf(int i )---返回int参数的字符串表示形式
String replace(CharSequence oldstr, CharSequence newstr)---返回被替换之后新的字符串(替换所有)
String split(String regex)---分割
String substring(int beginIndex)---切割
String substring(int beginIndex,int endIndex)
String trim()---去空格
String的转换:
Example03.java:
public class Example03{
public void static main(String[] args){
String str = "absssss";
Char[] c = str.toCharArray();
for(int i = 0; i <= c.length -1 ; i ++ ){
if(i != c.length - 1 ) {
System.out.print(c[i] +",");
}else{
System.out.print(c[i]);
}
}
System.out.println(String.valueOf(11));
System.out.println(str.toUpperCase());
}
String的替换和去除空格操作:
public class Example05{
public void static main(String[] args){
String str = "itcast";
System.out.println(str.replace("it","cn.it");
String str1 = "i t c a s t "
System.out.println(str1.trim
);
System.out.println(str1.replace(" ","");
}
}
字符串的判断:
public class Example06{
public void static main(String[] args){
String s1 = "String";
String s2 = "Str";
System.out.println(s1.endsWith("ng"));
System.out.println(s1.startsWith("S"));
System.out.println(s1.contains("tri"));
System.out.println(s1.isEmpty());
System.out.println(s1.equals(s2));
}
}
字符串的截取和分割:
public class Example07{
public void static main(String[] args){
String s = "Peter-Morton-Ben";
System.out.println(s.substring(3));
System.out.println(s.substring(3,9));
String[] stringArray = s.split("-");
for(int i = 0; i < stringArray.length ; i ++){
if(i != (stringArray.length - 1)){
System.out.print(stringArray[i]+",");
}else{
System.out.print(stringArray[i]);
}
}
}
}
StringBuffer:
内容和长度可以改变
常用方法8个:
6StringBuffer:
StringBuffer append(char c)
StringBuffer insert(int offset , String str)
StringBuffer deleteCharAt(int index)
StringBuffer delete(int start, int end)
StringBuffer replace(int start,int end , String s)
StringBuffer reverse()---反转
1void:
void setCharAt(int index,char ch)
1String:
String toString()---返回StringBuffer缓冲区的字符串
System类:
全部是静态方法:
static void exit(int status)
static void gc()---运行垃圾回收机制,并对垃圾进行回收
static void currentTimeMillis()
static void arrayCopy(Object src,int srcPos, Object dest , int desPos,int length)---数组的copy
static Properties getProperties()---系统属性的获取
static String getProperty(String key)
Runtime类:
用于封装jvm虚拟机进程
采用单例模式,不可以直接实例化:
Runtime runTime = Runtime.getRuntime();
常用方法:
int availableProcessors()
int freeMemory()
int maxMemory()
Process exec()---执行一个电脑进程(类似cmd)
Math类:
也全是静态方法
主要有几个常用的方法:
public class Example15{
public static void main(String[] args){
System.out.println("计算绝对值的结果:"+Math.abs(-10));
System.out.println("计算大于参数的最小整数:"+Math.ceil(5.6));
System.out.println("计算小于参数的最小整数:"+Math.floor(-4.2));
System.out.println("对小数进行四舍五入:"+Math.round(-4.8));
System.out.println("求两个数的最大数:"+Math.max(2.1,-2.1));
System.out.println("求两个数的最小数:"+Math.min(2.1,-1.1));
System.out.println("生成一个大于0.0小于1.0的随机值"+Math.random());
}
}
Random类:
两种实例方法:
Random r = new Randow()---无种子
Random r = new Randow(10)---有种子
其差别在于:如果指定了相同的种子,则每个实例对象产生的随机数具有相同的序列
public class Example16{
public void static main(String[] args){
Random r = new Random(); //创建对象时不传入种子
for(int i = 0 ; i < 10 ; i ++){
System.out.println(r.nextInt(1000));
}
}
}
public class Example17{
public void static main(String[] args){
Random r = new Random(); //创建对象时传入种子
for(int i = 0 ; i < 10 ; i ++){
System.out.println(r.nextInt(1000));
}
}
}
Randow的常用方法:
boolean nextBoolean()
double nextDouble()
float nextFloat()
int nextInt()
int nextInt(int n)
long nextLong()
基本数据类型的包装类:
除了Integer和Character类外,其他包装类的名称和基本数据类型的名称一致,只是首字母大写即可
Integer的常用方法:
String toBinaryString(int i)---转为二进制
String toOctalString(int i)---转为八进制
String toHexString(int i)---转为十六进制
int intValue()---转为int类型的值
Integer valueOf(int i)
Integer valueOf(String s)
int parseInt(String s)
public class Example20{
public void static main(String[] args){
Integer i = new Integer(22);
int int = i.intValue();
System.out.println(int);
}
}
public class Example21{
public void static main(String[] args){
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
for(int i = 0; i <x ; i ++){
StringBuffer sb = new StringBuffer(); //得到行数,且同名重复
for(int i = 0 ; i < y ; i ++){ //得到每行的个数
sb.append("*");
}
}
}
}
cmd中输入:
java Example21 3 4 得到:
****
****
****
Integer的装箱:
Integer i = new Interger(20)
Integer的拆箱:
int iii = i.intValue()
但jdk5.0之后就自动装箱和自动拆箱了
Date类:
两种实例化方式:
Date date1 = new Date();
Date date2 = new Date(8888888888888888888);
date1得到的是当前计算机的日期和时间
date2得到的是从1970年1月1日以来过了8888888888888毫秒后的日期和时间
Calendar类和DateFormat类以及SimpleDateFormat类
calendar类的实例化方法和dateFormat类的实例化方法都是单例模式,故不能直接new
Calendar c = Calendar.getInstance();
DateFormat df = DateFormat.getDateInstance();
只差了一个Date,get(Date)Instance()
SimpleDateFormat类的实例化直接new:
SimpleDateFormat sdf = new SimpleDateFormat();
Calendar类的总要方法:
int get(int field)
void add(int field , int amount)
void set(int field , int value)
void set(int year , int month , int date)
void set(int year, int month , int date , int hourOfDay, int minute, int second)
这些方法里的参数int field有:
Calendar.YEAR
Calendar.MONTH
Calendar.DATE
Calendar.HOUR
Calendar.MINUTE
Calendar.SECOND
三者比较:
如果要到达一个统一的目的(即格式化时间)
public class Calender {
public void static main(String[] args){
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int date = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println("当前时间为:"+year+"年"+month+"月"+date+"日"+ hour+"时"+minute+"分钟"+minute+"秒");
}
}
public class DateFormat {
public void static main(String[] args){
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL); //参数有以下几种:DateFormat.FULL,DateFormat.LONG,DateFormat.MEDIUM,DateFormat.SHORT
Date date = new Date();
String time = df.format(date);
System.out.println(time);
}
}
public class SimpleDateFormat {
public void static main(String[] args){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("Gyyyy年MM月dd日:今天是yyyy年的第D天,E");
String time = sdf.format(date);
}
}
simpleDateFormat的参数是合适的格式字符串参数,然后format一个Date对象,搞定!
JDK7新特性:switch语句支持String
public class Example30 {
public void static main(String[] args){
String week = "friday";
switch(week){
case "monday":
System.out.println("星期一");
break;
case "Tuesday":
System.out.println("星期二");
break;
case "Wednesday":
System.out.println("星期三");
...
}
}
api,over!
做程序,一定要考虑非正常情况:
范围内数据
边界数据
超边界数据
使用键盘输入数据的方法;
1)args[]数组
2)scanner类(用于封装键盘录入)
3)IO流
使用scanner的步骤
Scanner sc = new Scanner(System.in);
int number = sc.nextInt(); //手动输入的值被nextInt()传给number
nextInt()这个方法,在Random类中也有
Int random = Random.nextInt();
Int random = Random.nextInt(100);
即获得一个随机数
又想起了read()和readLine():
只有BufferedReader采用readLine()
而InputStream包括Reader都是read()
ObjectOutputStream是readObject()
|
|