Scanner 类
使用Scanner进行输入,
`Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字");
int i=scanner.nextInt();
使用scanner.hasNext()方法判断是不是正确输入的类型,返回值是true或者错误
if (scanner.hasNext()){
}
一个小实例
public static void main(String[] args) {
while (true){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字");
if (scanner.hasNextInt()){
int i=scanner.nextInt();
System.out.println(i);
break;
}
else {
System.out.println("输入不正确请重新输入");
}
}
}
String类
1.String类代表字符串,java中程序中所有字符串字面值(如abc)都作为此类的实例实现
创建有两种方法String s="我爱你"
这个可以改变s的指向 或者String s=new String("我爱你");
这个在创建之后 就不可以改变了
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2);//false
//String 重写了Object类的equal() 比较的是,两个字符串字面上的内容是否相同
System.out.println(s1.equals(s2));//true
String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3 == s4);//false
System.out.println(s3.equals(s4));//true
//但我采用这种直接赋值的方式,他先会去常量中,有没有该字符串,如果没有就创建,如果有就把之前的地址值赋值过来
String s5 = "hello";
String s6 = "hello";
System.out.println(s5 == s6);//true
System.out.println(s5.equals(s6));//true
}
2.字符串是常量 他们的值在创建之后不能更改。
3.可以空参构造和传参构造;String s=new string();或者String s=new string(abc);
4.public String(byte[] byte);讲数组转换为字符串(讲数对应ascm码的字符串返回出去)public String(byte[] byte,0,3);讲数组的0开始后面的三个转过去。
5.将字符数组char转换为字符串 new String(char);,如果要转换指定的new String(char,0,2);
6.获取字符串的长度方法 length();
String s = new String(); // ""
int length = s.length(); //获取字符串的长度
小实例 包含了几个方法
public static void main(String[] args) {
//与判断相关的方法
boolean b = "abc".equals("abc"); //区分大小写
System.out.println(b);
boolean b1 = "ABC".equalsIgnoreCase("abc");//不区分大小写
System.out.println(b1);
//判断一个字符串中是否包含这个子串
boolean b2 = "完后余生,洗衣是你,做饭是你,带娃还是你".contains("是你");
System.out.println(b2);
//判断是否以这个字符串开头或结尾
System.out.println("abc".startsWith("a"));
System.out.println("abc".endsWith("c"));
//判断是否是空串
System.out.println("".isEmpty());
System.out.println("".length() == 0);
}
获取的方法
1.字符串编有索引,查看索引位置,使用indexOf();查找该字符在原串中第一次出现的位置。返回值是数字类型。如果查找不到就会返回-1,可以用来查看一个字符串中是否包含该字符。
string.indexOF('是');//从前往后检索 lastindexOF()从后往前检索
string.indexOF('是',3);//指定开始索引位置
2.使用charAt();索引截取该位置的字符 返回该位置字符
char ch = "这是一个字符".charAt(3);//ch是 个
3.从原串中获取一段字符串
String str="假如我年少有位不自卑";
Strin s=str.substring(str.indexOF('有'));//有之后全部截取完
Strin s1=str.substring(2,str.indexOF('有'));//从我到有
public static void main(String[] args) {
//转换功能相关的方法
//转换大小写
String s = "abcd".toUpperCase();
System.out.println(s);
String s1 = "AAAA".toLowerCase();
System.out.println(s1);
//把字符串转换成字节数组
byte[] bytes = "abcd".getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
System.out.println(bytes.length);
//把字节数组转换成字符串
String s2 = new String(bytes, 0, bytes.length);
System.out.println(s2);
System.out.println("-----------------------------");
//把字符串转换成字节数组
byte[] bytes1 = "我在人民广场吃着炸鸡".getBytes();
System.out.println(bytes1.length);//
for (int i = 0; i < bytes1.length; i++) {
System.out.println(bytes1[i]);
}
//把字节数组转换成字符串
String s3 = new String(bytes1, 6, 15);
System.out.println(s3);
//UTF-8 一个汉字占3个字节
// System.out.println("錒".getBytes().length);
//把字符串转换成字符数组
String s4="我在人民广场吃着炸鸡";
/*
char[] chars = new char[s4.length()];
for (int i = 0; i < s4.length(); i++) {
chars[i]=s4.charAt(i);
}
*/
char[] chars = s4.toCharArray();
//把一个字符数组转换成字符串
String s5 = new String(chars);
System.out.println(s5);
String concat = "abc".concat("aaa").concat("ccc").concat("dddd");
System.out.println(concat);
}
new String(给的内容); 可以给byt形也可是char形 都会转换成相应的Strin形式。
4.替换方法 replace(‘啊’,‘恩’); 啊替换为恩,返回已经替换的原串。
String s4="我在人民广场吃着炸鸡";
String s5=replace('我在''我不在');
5.去除两端空格
String u=" ahzngsan "
Stringc=u.trim();//u就是zhangsan无空格
6.比较两个字符串,按照ascii码字典顺序去比,返回的是两个字符串的ascii码的差值,当字典顺序比不出来 按照长度比较
str.comparTo(str1);
7.concat(“aaa”)链接
1.Stringbuffer方法 朝里面加数据,
String s=new Sringbuffer();//创建一个容器
String append1=s.append(所有类型都可以)//朝里面加入数据
String append2=s.append(所有类型都可以)//朝里面加入数据
append1和append2 的地址就是s,是一个s容器的地址
2.insert方法,朝指定位置插=入数据
s.insert(2,eee);
3.根据索引进行删除deleteCharAt();
String s = deleteCharAt(1,4);//删除1到4的数据,包含头不包含尾部
String s = deleteCharAt(1);//只删除1位置的
4.replace()方法替换
s.replace(2,5,我爱你);//包含头不包含尾
6.反转容器中的内容 reverse
注意:以上的方法返回的都是容器本身
String和Stringbuffer互相转换
Sringbuffer s = new Stringbuffer(str);//字符串转StringBuffer
String string = new String(buffer);
String string2 = buffer.toString();
注:StringBuffer适用于的多线程,StringBilder适用于单线程。