0-750成绩分数正则表达式
时间: 2023-07-21 07:11:48 浏览: 80
对于0-750的成绩分数,可以使用以下正则表达式:
```regex
^(?:[0-9]{1,2}|[1-6][0-9]{2}|7[0-4][0-9]|750)$
```
这个正则表达式匹配0到750之间的整数。它分为三个部分:
1. `[0-9]{1,2}` 匹配0到99之间的两位数或一位数的整数。
2. `[1-6][0-9]{2}` 匹配100到699之间的三位数。
3. `7[0-4][0-9]` 和 `750` 分别匹配700到749之间的三位数和750这个特定的数。
例如,"90"、"100"、"500"、"749"、"750" 都会匹配,而 "800"、"99"、"-50" 不会匹配。
请注意,这个正则表达式只适用于整数形式的分数,如果需要支持小数形式,请提供更详细的要求。如果还有其他问题,请随时提问!
相关问题
0-750成绩分数正则表达式支持小数
如果要支持小数形式的0-750成绩分数,可以以下正则表达式:
```regex
^(?:[0-6]?[0-9]{1,2}|7[0-4][0-9]|750)(?:\.\d+)?$
```
这个正则表达式匹配0到750之间的整数或小数形式的成绩分数。它分为两个部分:
1. `(?:[0-6]?[0-9]{1,2}|7[0-4][0-9]|750)` 匹配0到749之间的整数或750这个特定的整数。
- `[0-6]?[0-9]{1,2}` 匹配0到699之间的两位数或一位数的整数。
- `7[0-4][0-9]` 匹配700到749之间的三位数。
- `750` 匹配750这个特定的整数。
2. `(?:\.\d+)?` 匹配可选的小数部分,其中 `\.\d+` 匹配小数点后面的一位或多位数字。
例如,"90"、"100"、"500"、"749"、"750"、"99.5"、"500.25" 都会匹配,而 "800"、"-50"、"99." 不会匹配。
希望这个正则表达式符合你的需求。如果还有其他问题,请随时提问!
使用Scanner类和正则表达式解析字符串"数学:87.5分,物理:76.5分,英语:97分"中的考试成绩,并计算出总成绩,其中课程门数和课程名不确定。 输入为一字符串,输出为浮点数,精确度一位小数。 ============================== 输入样例: 数学87.5分,物理76.5分,英语97分 输出样例: 261.0
以下是使用Scanner类和正则表达式解析字符串,计算出总成绩的Java代码:
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
scanner.close();
double totalScore = 0.0;
Pattern pattern = Pattern.compile("(\\d+(\\.\\d+)?)分");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
totalScore += Double.parseDouble(matcher.group(1));
}
System.out.printf("%.1f", totalScore);
}
}
```
代码说明:
1. 使用Scanner类从标准输入中读取一行字符串。
2. 关闭Scanner对象。
3. 定义totalScore变量,用于存储总成绩,初始值为0.0。
4. 定义正则表达式模式,该模式匹配形如"87.5分"的字符串。
5. 创建Matcher对象,用于在输入字符串中查找符合模式的子串。
6. 使用while循环,不断查找符合模式的子串,并将子串中的分数累加到totalScore变量中。
7. 使用printf方法输出totalScore变量的值,保留一位小数。