3、常用API

2019-06-20  本文已影响0人  浮生若梦OvO

一、String类

1、String类概述

a、String 类适用于描述字符串类型的事物,字符串一旦被建立,就不会改变,因为它默认被final修饰。
b、“对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象”。
c、空串与null的区别:空串是没有任何字符串而null是不再指向字符串,空串可以作为对象调用方法,一个空格算作一个字符。

2、String类构造方法详解

a、String(byte[] bytes)
把一个字节数组转换成字符串
b、String(byte[] bytes, int index, int length)
把一个字节数组的一部分转换为字符串 (从指定索引开始,截取指定长度)
c、String(char[] value)
把一个字符数组转换成字符串
d 、String(char[] value, int index, int length)
把一个字符数组的一部分转换为字符串 (从指定索引开始,截取指定长度)
e、String类的构造方法可以把任意的字节数组和字符数组转换为字符串.

3、创建字符串对象的方式
第一种  String s = new String("abc");
第二种  String s ="abc";
注意:
数组:使用的是数组的  .lenght 属性
字符串:使用的是字符串的 .length()方法

4、String常见面试题

a、如何理解字符串一旦初始化就不可以被改变

String s = "hello";
s += "world";
System.out.println(s); //结果:helloword。
注:不可以被改变说的是常量池中的值,并不是引用s(s是可以重新被赋值的)

b、两种创建字符串的区别

String s1 = new String("abc");
String s2 = "abc";
s1、s2有区别吗?
第一种方式:第一种方式在内存中存在两个"abc"字符串,一个是在常量池中,一个是在堆内存当中.
第二种方式:在内存中只存在一个"abc"在常量池中.
5、String类的判断功能

a、boolean equals(Object obj) ://判断两个字符串是否相同(区分大小写)

b、 boolean equalsIgnoreCase(String str) ://判断两个字符串是否相同(不区分大小写)

c、 boolean contains(String str)://判断这个字符串是否包含给定的字符串

d、 boolean startsWith(String str)://判断字符串是否以给定的字符串开始

e、 boolean endsWith(String str)://判断字符串是否以给定的字符串结束

f、 boolean isEmpty()://判断字符串是否为空

g、以下程序运行会出现什么结果

String s1 = "";
String s2 = null;
System.out.println(s1.isEmpty()); //true
System.out.println(s2.isEmpty()); //NullPointerException空指针异常
6、模拟用户登录

思路回顾:
A:假设已经存在有了用户名密码,用String 定义就OK了
B:键盘录入数据用户名和密码.
C:把数据进行比较,如果正确就进入,不正确继续判断
D:给三次机会,明确了循环次数,用for循环解决
注:C、D步骤代码提示

if(userName.equals(name) && passWord.equals(pwd)){
                    System.out.println("输入正确,登陆成功");
                    break;
               } else{
                    //如果不匹配则提示相应的信息,并告知剩余次数。
                    //三次都输错,直接冻结账号
                    if ((2-i)==0) {
                         System.out.println("账号已被锁定,请与老刘联系");
                    }else {
                         System.out.println("登陆失败,您还有"+(2-i)+"次机会");
                    }
7、String类的获取功能

int length()
获取字符串的长度

char charAt(int index)
获取指定索引处出现的字符

int indexOf(int ch)
获取字符串中指定字符第一次出现的索引

int indexOf(String str)
获取字符串中指定字符串第一次出现的索引

int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,
从指定的fromIndex开始搜索。

int indexOf(String str, int fromIndex)
返回指定字符串中第一次出现指定字符串处的索引,从指定位置开始搜索

String substring(int start)
截取字符串从指定位置开始,到末尾.

String substring(int start, int end)
截取字符串从指定位置开始到指定位置结束.

注:字符串中找索引有一个原则:包左不包右.

8、String类的转换功能

byte[] getBytes()
把字符串转换成字节数组

char[] toCharArray()
把字符串转换成字符数组

static String ValueOf(char[] chs)
把字符数组转换成字符串

static String valueOf( int i )
把(基本类型)int类型的一个数据转换为字符串类型

String toLowerCase()
把字符串全部转换为小写

String toUpperCase()
把字符串转换为大写

String concat(String str)
把两个字符串拼接.

9、String类的其它功能

String replace(char oldChar, char newChar )
用指定新的字符替换旧的字符

String replace(String oldString, String newString)
用指定新的字符串去替换老的字符串(新串和老串的长度可以不同)

String[] split(String regex)
以指定的字符串为标记切割字符串,返回一个字符串数组.

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

int compareTo(String antherString)
把两个字符串进行比较,返回两个字符串的Unicode差或长度差。

如:

public class Base {
      static public void main(String[] args) {
//         String a = " abc";
//         String b = " abcdef";
//         System.out.println(a.compareTo(b));//return a.length()-b.length();结果是:3
//         String a = " abc";
//         String b = " abcdef";
//         System.out.println(a.compareTo(b));//return a.length()-b.length();结果是:-3
//         String a = " abc";
//         String b = " bcdef";
//         System.out.println(a.compareTo(b));//return a-b=97-98=-1;结果是:-1
           String a = "bc";
           String b = "abcdef";
           System. out.println( a.compareTo( b)); //return a-b=98-97=1;结果是:1
     }
}

二、StringBuffer

三、Integer类

Integr(int value);
int num =100;
Integer i= new Integer(num);
System.out.println(i.tiString());

b:

 Integer(String s);注意:这里字符串必须是由数字字符组成的字符串。

c:

String ss="100";
//下行被注释的代码会报错:NumberFormatException(数据格式异常)
//String s1="100abc";
Integer i=new Integer(ss);
System.out.printlnln(i);
思路:把int范围内的最大值和最小值找到,然后判断即可。
public static double pow (double a ,double b)--->Math类中的方法
if(num<Integer.MAX_VALUE && num>Integer.MIN_VALUE)
{
     //该数字是int范围内的值
}
注:public static final int MAX_VALUE//public static final int MIN_VALUE
a: public static String toBinaryString(int i);//把一个int类型的值转换成对应的二进制形式
b: public static String toOctalStirng(int i);//把一个int类型的值转换为对应的八进制形式
c: public static String to HexString(int i);//把一个int类型的值转换为对应的十六进制

注:因为是静态方法,所以采用类名调用方式//Integer.toBinaryString(int i);

四、Date类

注意:Date类去查API,要查util包下的date类。

//Date-->String 转换过程。
使用的方法是:public final String format(Date date);
步骤;
Date d=new Date( );//创建格式对象。
SimpleDateFormat sdf=new SimpleDateFormat( Gyyyy年MM月dd日 HH:mm:ss,E);//按SmpleDateFormat对象的日期格式化模板格式化日期对象。
String s= sdf. format(d );
System,out.println(s );
     Date date1 =new Date();
     System.out.println( date1);
     String s="yyyy年MM月dd日 HH:mm:ss,E";
     SimpleDateFormat df1= new SimpleDateFormat( s);
     System.out.println( df1.format( date1));
package cn.itcast;

import java.text.SimpleDateFormat;
import java.util.Date;

/*
* 获得当前时间,并把当前时间输出,
* 然后把时间的格式变成咱们中国人习惯的格式,
*     比如: "2014年07月16日 09:58:58 星期三"
*
* 日期 ----->字符串
*/
public class DateFormatTest {
     public static void main(String[] args) {
          //获得当前时间,并把当前时间输出,
          Date d = new Date();
          System.out.println(d);
         
          //2014-11-15       //2014年07月16日
          //1. 创建格式化对象SimpleDateFormat,需要制定格式
          String geshi = "yyyy年MM月dd日 HH:mm:ss E";
          //用给定的模式和默认语言环境的日期格式符号构造
          SimpleDateFormat sdf = new SimpleDateFormat(geshi);
         
          //Date--String     格式化          fomrat
          //2. 调用格式化方法,将Date格式化成指定的字符串
          String str = sdf.format(d);
          System.out.println(str);
         
    
         
          //String ----- >Date 解析     parse
     }}
import java.text.SimpleDateFormat;
import java.util.Date;

/*
* 数据中有这样一个字符串
* String stringTime = "1997-07-01 00:00:00",
*
* 我们希望获取这个字符串表示的时间对象.然后把这个时间打印出来给英国人看.
* 字符串----------->日期
*/
public class DateFormatTest2 {
     public static void main(String[] args) throws ParseException {
         
          String stringTime = "1997-07-01 00:00:00";
          //1. 创建格式化对象,需要指定解析时使用的格式
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         
          //String  --  Date 解析   parse
          //2. 调用格式化对象的parse()  parse 从给定字符串的开始解析文本,以生成一个日期。
          Date date = sdf.parse(stringTime);
         
          System.out.println(date);
     }
}
package cn.itcast_02;

import java.util.Calendar;
import java.util.Scanner;

/*
* 请说出任意一年的2月份是多少天。
*/
public class CalendarDemo2 {
     public static void main(String[] args) {
          // 获取Calendar对象
          Calendar c = Calendar.getInstance();
          // public final void set(int year,int month,int date)
          // 注意,这里给的2其实是3月份。
          // c.set(2013, 2, 3);
          // 2013,3,3

          // public abstract void add(int field,
          // int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量。
          // c.add(Calendar.MONTH,2);
          // c.add(Calendar.DATE, -20);
         
          Scanner sc = new Scanner(System.in);
          int year = sc.nextInt();

          c.set(year, 2, 1);// 把日期设置为2013年3月1日
          c.add(Calendar.DATE, -1);// 把日期往前推1日

//          System.out.println(c.get(Calendar.YEAR));
//          System.out.println(c.get(Calendar.MONTH) + 1);
          System.out.println(c.get(Calendar.DATE));
     }}

五、System类

a :public static void exit ( int status)
退出虚拟机(注意:参数用作状态码,非0的状态码表示异常中止)
b :public static long currentTimeMillis()
返回当前时间的毫秒值
c:public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length )
从指定数组中复制一个数组,复制从指定位置开始,到目标数组的指定位置结束.

六、Arrays工具类

七、Collections工具类

八、object类

九、Math类(常用方法)

十、Random 类(此类的实例用于生成伪随机数流。)

十一、Scanner类

上一篇 下一篇

猜你喜欢

热点阅读