A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mortonnnn 中级黑马   /  2015-7-19 07:09  /  881 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一:字符串 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()



















12 个回复

倒序浏览
这肯定是复制粘贴
回复 使用道具 举报
这和API有什么关系啊
回复 使用道具 举报
写的真长呀
回复 使用道具 举报
我也是醉了,不管是复制的,还是自己写的,确实也有用,受教
回复 使用道具 举报
我也是醉了,不管是复制的,还是自己写的,确实也有用,受教
回复 使用道具 举报
我也是醉了,不管是复制的,还是自己写的,确实也有用,受教
回复 使用道具 举报
加多宝 发表于 2015-7-19 08:43
这肯定是复制粘贴

不是,自己打的,还刚开始学呢
回复 使用道具 举报
gaoming971366 发表于 2015-7-19 11:12
我也是醉了,不管是复制的,还是自己写的,确实也有用,受教

自己写的,谢谢支持。。。
回复 使用道具 举报
mortonnnn 发表于 2015-7-20 22:10
自己写的,谢谢支持。。。

厉害了哥们
回复 使用道具 举报

哈哈谢谢支持
回复 使用道具 举报
好厉害
回复 使用道具 举报

希望我也行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马