1.问题:输入一个字符串,然后若该字符串是一个整数,则转换为整数后输出乘以10后的结果,若是小数,则转换为一个小数后输出乘以5后的结果,若不是数字则输出“不是数字”,需要使用正则表达式进行判断。
public class Demo1 {
public static void main(String[] args) {
while(true) {
System.out.println("请输入一个字符串:");
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();//存储输入的字符串
String regexInteger="[0-9]*";//正则表达式用来判断是否是整数
String regexDecimal="^\\d+\\.\\d+$";// 正则表达式用来判断是否是小数
String regexnumber="-?[0-9]+.?[0-9]+";//是否为数字
if(str.matches(regexInteger)) {//如果是整数
int number1=Integer.parseInt(str);
System.out.println(number1*10);
}
if(str.matches(regexDecimal)) {
double number2=Double.parseDouble(str);
System.out.println(number2*5);
}
if(!str.matches(regexnumber)) {
System.out.println("不是数字");
}
}
}
}
2.将字符串123,456,789,012根据“,”拆分,并输出拆分后的每一项
public class Demo2 {
public static void main(String[] args) {
String str="123,456,789,012";//字符串存储
String[] strings=str.split(",");
for(int i=0;i<strings.length;i++) {
System.out.println(strings[i]);
}
}
}
3.将字符串“123abc456def789ghi”中的英文部分替换为“#char#”
public class Demo3 {
public static void main(String[] args) {
String str="123abc456def789ghi";//存储字符串
String regex="[a-zA-Z]+";//正则表达式判断为英文()
String replacement="#char#";
String strNew=str.replaceAll(regex, replacement);
System.out.println(strNew);
}
}