您的位置:首页 > 职场人生

黑马程序员—常见API

2015-10-05 19:26 621 查看
——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);
*/
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java