Scanner类
录入数据:
Scanne sc=new Scanner(System.in);
//public static final InputStream in的标准输入流
XXX i=sc.next XXX();
录入String类型时应该为:
Scanne sc=new Scanner(System.in);
String i=sc.next Line();
hasNextXxx()和nextXxx()方法
判断下一个是否某种类型的元素,Xxx是基本数据类型
hasNextXxx()
如果需要判断是否包含下一个字符串
nextXxx()
解决问题
先录入整数在录入字符串,发现无法录入字符串
答:当录完整数回车换行,那回车换行符,其实已经next Line()被录入
但效果不是我们想要的
解决办法:
1.在录入字符串中重新创建一个Scanner
2.string s=sc.next()录入字符串
//next Line()会录入空格、回车换行
//next()不会录入空格、回车换行
为了防止要的类型和输出类型不一致,则可以预先判断 has next Int XXX()
释放资源
sc.close()
String类
字符串是由一个或多个字符所组成的数据(JDK1.8字符串底层由字符数组实现存储)
1.Java中程序中所有字符串字面值作为此类的实例实现
2.字符串是常量,它们的值在创建之后不能更改
构造方法
public String():空构造
public String(String original):把字符串常量值转成字符串
public String(byte[] bytes):把字节数组转成字符串
public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)
public String(char[] value):把字符数组转成字符串
public String(char[] value,int index,int count):把字符数组的一部分转成字符串
public int length()获取字符中长度
String特点:一旦创建就不能改变,因为字符串的值是在堆内存的常量池中划分空间 分配地址值
String类的判断功能
比较字符串的内容是否相同,区分大小写
public boolean equals(Object obj):
比较字符串的内容是否相同,忽略大小写
public boolean equalsIgnoreCase(String str):
判断字符串中是否包含传递进来的字符串
public boolean contains(String str):
判断字符串是否以传递进来的字符串开头
public boolean startsWith(String str):
判断字符串是否以传递进来的字符串结尾
public boolean endsWith(String str):
判断字符串的内容是否为空串""。
public boolean isEmpty():
String类的获取功能
获取字符串的长度。
public int length():
获取指定索引位置的字符
public char charAt(int index):
返回指定字符在此字符串中第一次出现处的索引。
public int indexOf(int ch):
返回指定字符串在此字符串中第一次出现处的索引。
public int indexOf(String str):
返回指定字符在此字符串中从指定位置后第一次出现处的索引。
public int indexOf(int ch,int fromIndex):
返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
public int indexOf(String str,int fromIndex):
从指定位置开始截取字符串,默认到末尾。
public String substring(int start):
从指定位置开始到指定位置结束截取字符串。
public String substring(int start,int end):
String类的转换功能
把字符串转换为字节数组。
public byte[] getBytes():
把字符串转换为字符数组。
public char[] toCharArray():
把字符数组转成字符串。
public static String valueOf(char[] chs):
把int类型的数据转成字符串(String类的valueOf方法可以把任意类型的数据转成字符串。)
public static String valueOf(int i):
把字符串转成小写。
public String toLowerCase():
把字符串转成大写。
public String toUpperCase():
进行字符串拼接。
public String concat(String str):
练习:
需求:把字符串反转
举例:键盘录入 “abc”
反转结果:“cba”*/
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段字符串");
String str = sc.nextLine();
String s = StringUtils.reverseString(str);
System.out.println(s);
}
}
统计键盘录入的字符串中出现了几次字符串java
例: 键盘输入:woyaoxuejava,xihuanjava,aijava,javajavawozuiai
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符:");
String str = sc.nextLine();
int oldLen = str.length();
String newStr = str.replace("java", "");
int newLen = newStr.length();
int geshu = (oldLen - newLen) / 4;
System.out.println(geshu);
}
}