黑马程序员—常见API

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一Scanner类
(1)Scanner是JDK5以后出现的方便我们从键盘接受数据的类。
(2)Scanner的构造格式:
Scanner sc = new Scanner(System.in);

System.in 是System类下面有一个静态的成员变量in。它的类型是InputStream。
代表的是标准键盘输入流。也就是键盘录入数据。
Scanner是对其进行了封装,提供了各种转换功能。方便我们获取到想要的数据类型的数据。
(3)要掌握的两个功能:
A:返回int类型
public int nextInt()
B:返回String类型
public String nextLine()
public String next()

注意事项:
先next,再nextLine会有问题。
解决方案:
重新建立Scanner对象。//一般不会这样做。因为消耗资源
根据需求,选择合适的方法。
统一一种方法。
代码实例

public class Demo01_Scanner {

    public static void main(String[] args) {

        /*
        Scanner sc = new Scanner(System.in);
        int nextInt = sc.nextInt();
        System.out.println(nextInt);

        Scanner sc2 = new Scanner(System.in);
        String data = sc2.next();
        System.out.println(data);

        Scanner sc3 = new Scanner(System.in);
        String nextLine = sc3.nextLine();
        System.out.println(nextLine);
        */

        Scanner sc4 = new Scanner(System.in);
        String next = sc4.next();
        String nextLine = sc4.nextLine();

        System.out.println("next方法返回内容:"+next);
        System.out.println("这行内容:"+nextLine);

    }

}

二String类的概述和使用
(1)由多个字符组成的一串数据。
(2)构造方法:
1:字面值常量赋值
2:public String() 创建一个空的字符串
3:public String(String original) 给定字符串,创建字符串对象
4:public String(byte[] bytes) 使用指定的字节数组创建字符串
5:public String(byte[] bytes, int offset,int length) 使用指定的字节数组的一部分创建字符串
6:public String(char[] value) 使用字符数组创建字符串
public String(char[] value, int offset, int count)

(3) String的普通方法:
判断:
重写equals方法:不再比较地址值,比较字符串内容本身
1:public boolean equalsIgnoreCase(String anotherString) 比较两个字符串内容,忽略大小写
2:public boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
CharSequence:char 值的一个可读序列 按照某种顺序排列的一列字符 String该接口的子类
在方法中如果看到CharSequence 类型,直接可以将其理解为String
3: public boolean startsWith(String prefix) 以某个字符串开头
public boolean endsWith(String suffix) 以某个字符串结尾

4: public boolean isEmpty() 判断字符串是否为空 判断依据字符串长度为0
代码实例

public class Demo04_String {

    public static void main(String[] args) {

        //1:public boolean equalsIgnoreCase(String anotherString)  比较两个字符串内容,忽略大小写
        String s = "i love java";
        String s2 = "I love java";

        System.out.println(s.equals(s2));
        System.out.println(s.equalsIgnoreCase(s2));
        System.out.println("=========================");
        //2:public boolean contains(CharSequence s)  当且仅当此字符串包含指定的 char 值序列时,返回 true。
        String s3 = "we love java";
        String s4 = "you love java";
        String s5 = "love java";
        String s6 = "";

        System.out.println(s3.contains(s4));
        System.out.println(s3.contains(s5));
        System.out.println(s3.contains(s6));
        System.out.println("=========================");
        //3:  public boolean startsWith(String prefix)  以某个字符串开头
        //public boolean endsWith(String suffix)  以某个字符串结尾

        String s7 = "i love java";
        String s8 = "i lov";
        String s9 = " java";
        String s10 = "love";

        System.out.println(s7.startsWith(s8));
        System.out.println(s7.endsWith(s9));

        System.out.println(s7.startsWith(s10, 2));
        System.out.println("=========================");

        //4: public boolean isEmpty() 判断字符串是否为空  判断依据字符串长度为0
        String s11 = "i love java";
        String s12 = " ";
        String s13 = "";
        //String s14 = null;

        System.out.println(s11.isEmpty());
        System.out.println(s12.isEmpty());
        System.out.println(s13.isEmpty());
        //System.out.println(s14.isEmpty());
    }

}

获取:
1:public int length() 获取字符串长度 int[] arr = new int[]{1,2,3,4}; >>arr.length
2:public char charAt(int index) 根据索引获取字符
3:public int indexOf(int ch) 根据字符获取索引
public int indexOf(int ch, int fromIndex)
public int lastIndexOf(int ch)与indexOf方法相对象,是最后一次出现的索引
4:public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
public String substring(int beginIndex, int endIndex) 截取字符串的一部分 包含头,不包含尾
代码实例

public class Demo05_String {

    public static void main(String[] args) {
        //1:public int length()  获取字符串长度
        String s = "i love java";
        System.out.println(s.length());
        System.out.println("==============");

        //2:public char charAt(int index) 根据索引获取字符
        String s2 = "i like java";
        System.out.println(s2.charAt(2));
        System.out.println("==============");

        //3:public int indexOf(int ch)    根据字符获取索引,获取第一次遇到索引
        //public int indexOf(int ch, int fromIndex)
        String s3 = "i miss java";
        System.out.println(s3.indexOf('i'));
        System.out.println(s3.indexOf('i',2));
        System.out.println("==============");

        //4:public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
        //public String substring(int beginIndex, int endIndex)  截取字符串的一部分   包含头,不包含尾
        String s4 = "i enjoy java";
        System.out.println(s4.substring(2));
        System.out.println(s4);

        System.out.println(s4.substring(0, 12));
        System.out.println(s4.substring(0,s4.length()));
    }

}

转换:
1:public char[] toCharArray() 字符串转为字符数组 字符数组的特殊性:可以直接打印数组,不是地址,是内容
2:public byte[] getBytes() 字符串转为字节数组
3: public static String valueOf(XX xx) 返回XX类型的字符串表示
4: public String toUpperCase() 转成大写
public String toLowerCase() 转成小写
5: public String concat(String str) 将指定字符串连接到此字符串的结尾。

代码实例

public class Demo06_String {

    public static void main(String[] args) {

        //1:public char[] toCharArray()  字符串转为字符数组
        String s = "i love java";
        char[] charArray = s.toCharArray();
        System.out.println(charArray);
        for (int i = 0; i < charArray.length; i++) {
            char c = charArray[i];
            System.out.println(c);
        }
        System.out.println("===================================");
        //2:public byte[] getBytes()  字符串转为字节数组
        String s2 = "i like java";
        byte[] bytes = s2.getBytes();

        for (int i = 0; i < bytes.length; i++) {
            byte b = bytes[i];
            System.out.println(b);
        }
        System.out.println("===================================");

        //3: public static String valueOf(XX xx)  返回XX类型的字符串表示
        Person p = new Person("AngelaBaby",28);
        System.out.println(String.valueOf(p));

        //4: public String toUpperCase() 转成大写
        //public String toLowerCase() 转成小写
        String s3 = "I love Java";
        System.out.println(s3.toUpperCase());
        System.out.println(s3.toLowerCase());

        //5: public String concat(String str) 将指定字符串连接到此字符串的结尾。 
        String s4 = "i love ";
        String s5 = "java";
        System.out.println(s4.concat(s5));
        System.out.println(s4+s5);
    }

}

二String类的特殊性:
字符串是常量;它们的值在创建之后不能更改,因为 String 对象是不可变的,所以可以共享

指向字符串对象的引用,可以再指向其他字符串对象
字符串对象本身,无法改变。

常量池:
用于存放常量的内存区域

字符串属于常量,所以在使用字面值常量赋值时,就创建常量对象。
如果发现后边再次使用该常量时,不再创建新的对象,使用已经存在的对象。

String重写了Object的equals方法,比较的不是地址值,而是字符串内容
代码实例

public class Demo03_String {

    public static void main(String[] args) {

        String s = "我是字符串";
        String s2 = "我是字符串";

        System.out.println(s == s2);
        System.out.println(s.equals(s2));
        System.out.println("================");
        String s3 = new String("我是字符串");
        String s4 = new String("我是字符串");

        System.out.println(s3 == s4);
        System.out.println(s3.equals(s4));



    }

}

三StringBuffer类
(1)StringBuffer: 字符串缓冲区 用来临时存储字符串内容的。
一个StringBuffer对象可以反复存放不同的字符串内容,最终只需要将这个拼写好的完整字符串返回即可。
字符串缓冲区用来拼写字符串,真正使用的仍然为字符串
代码实例

public class Demo01_StringBuffer {

    public static void main(String[] args) {
        //定义一个int类型数组
        int[] arr = new int[]{12,4,6,7,734,34,67,8,0,0};
        //定义变量,接收结果字符串,并加入{
        String s = "{";
        //遍历数组
        for ( int i=0; i<arr.length; i++) {
            //依次获取到每一个元素
            int j = arr[i];
            //将每一个元素加到结果字符串中
            s += j;
            //如果不是最后一个元素,则元素后边需要添加,
            if(i!=arr.length-1) {
                s += ",";
            }
        }
        //将所有元素添加到字符串内后,加入“}”
        s += "}";
        //打印最终结果
        System.out.println(s);
    }

}

构造:
public StringBuffer() 创建一个空的字符串缓冲区
public StringBuffer(int capacity) 指定容量创建一个字符串缓冲区
public StringBuffer(String str) 给定内容创建一个字符串缓冲区

普通方法:
public StringBuffer append(XXX xxx) 将任意类型转为字符串,添加到字符串缓冲区
public int capacity() 返回当前容量
public int length() 返回字符数
代码实例

public class Demo02_StringBuffer {

    public static void main(String[] args) {

        StringBuffer sb = new StringBuffer();
        sb.append(2);
        sb.append(true);
        sb.append('a');
        sb.append("i love java");

        System.out.println(sb.toString());
        System.out.println("========================");

        StringBuffer sb2 = new StringBuffer(24);
        sb2.append("aaaaabbbbbcccccdddddeeeee");
        System.out.println(sb2.length());
        System.out.println(sb2.capacity());

        System.out.println(sb2);
        System.out.println("========================");
    /*  
        StringBuffer sb3 = new StringBuffer("i love java");
        System.out.println(sb3.capacity());
        System.out.println(sb3.length());
        System.out.println(sb3);
    */
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值