编程程序,从键盘上输入包含有整数和其他字符组成的一行字符串,求取其中最大的整数并判断它是否是素数。用Java
时间: 2023-06-25 08:07:31 浏览: 46
可以使用正则表达式和数学运算来解决这个问题。
首先,我们从键盘上读取字符串:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入字符串:");
String str = scanner.nextLine();
scanner.close();
}
}
```
接下来,我们使用正则表达式匹配出字符串中的所有整数,并找出其中的最大值:
```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);
System.out.print("请输入字符串:");
String str = scanner.nextLine();
scanner.close();
Pattern pattern = Pattern.compile("-?\\d+");
Matcher matcher = pattern.matcher(str);
int max = Integer.MIN_VALUE;
while (matcher.find()) {
int num = Integer.parseInt(matcher.group());
if (num > max) {
max = num;
}
}
System.out.println("最大整数为:" + max);
}
}
```
接下来,我们判断最大整数是否是素数。一个数是素数,当且仅当它大于1且只能被1和它本身整除。因此,我们可以使用循环从2到最大整数的平方根进行遍历,判断是否存在能够整除最大整数的数:
```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);
System.out.print("请输入字符串:");
String str = scanner.nextLine();
scanner.close();
Pattern pattern = Pattern.compile("-?\\d+");
Matcher matcher = pattern.matcher(str);
int max = Integer.MIN_VALUE;
while (matcher.find()) {
int num = Integer.parseInt(matcher.group());
if (num > max) {
max = num;
}
}
System.out.println("最大整数为:" + max);
boolean isPrime = true;
if (max <= 1) {
isPrime = false;
} else {
for (int i = 2; i <= Math.sqrt(max); i++) {
if (max % i == 0) {
isPrime = false;
break;
}
}
}
if (isPrime) {
System.out.println(max + "是素数");
} else {
System.out.println(max + "不是素数");
}
}
}
```
这样,我们就完成了从字符串中找出最大整数并判断它是否是素数的程序。