第十一届蓝桥杯省赛第二场java大学b组真题共分为两道编程题和一道综合应用题,以下是真题及解析。
第一题是给定一个字符串,求出字符串中所有数字的总和。首先我们可以使用正则表达式来匹配字符串中的数字,然后将匹配到的数字累加起来即可。可以使用Java中的Pattern和Matcher类来实现正则匹配,具体代码如下:
```java
import java.util.regex.*;
public class Main {
public static void main(String[] args) {
String str = "abc123def456ghi789";
int sum = 0;
Pattern pattern = Pattern.compile("\d+");
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
sum += Integer.parseInt(matcher.group());
}
System.out.println("数字总和为:" + sum);
}
}
```
第二题是给定两个字符串,判断第二个字符串是否是第一个字符串的子串。可以使用Java中的contains()方法来判断一个字符串是否包含另一个字符串。具体代码如下:
```java
public class Main {
public static void main(String[] args) {
String str1 = "abcdefg";
String str2 = "cde";
if (str1.contains(str2)) {
System.out.println("第二个字符串是第一个字符串的子串!");
} else {
System.out.println("第二个字符串不是第一个字符串的子串!");
}
}
}
```
综合应用题是实现一个简单的计算器,根据输入的两个数字和运算符进行相应的运算并输出结果。我们可以使用Java中的Scanner类来获取用户输入的数字和运算符,并根据运算符进行相应的运算。具体代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数字:");
int num1 = scanner.nextInt();
System.out.print("请输入第二个数字:");
int num2 = scanner.nextInt();
System.out.print("请输入运算符(+、-、*、/):");
String operator = scanner.next();
double result = 0;
switch(operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
default:
System.out.println("无效的运算符!");
}
System.out.println("计算结果为:" + result);
}
}
```
以上就是第十一届蓝桥杯省赛第二场java大学b组真题及解析的回答,希望能对你有所帮助!