ava 请输入电话号码,隐藏中间四位数
时间: 2023-12-13 10:05:59 浏览: 85
你可以使用 Java 的字符串操作函数和正则表达式来实现隐藏电话号码中间的四位数。以下是一个示例代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入电话号码:");
String phoneNumber = scanner.nextLine();
// 取出电话号码中间四位数
String middleDigits = phoneNumber.substring(3, 7);
// 将电话号码中间四位数替换为 *
phoneNumber = phoneNumber.replace(middleDigits, "****");
System.out.println("隐藏后的电话号码:" + phoneNumber);
}
}
```
运行该程序,输入电话号码后会将其中中间的四位数替换为 *。例如,输入 12345678901,输出的隐藏后的电话号码为 123****8901。
相关问题
ava要求输入两个日期yyyyMMdd 1.格式要求大于19700101的8位数,且相差大于4年,年月日要求合法 2.需要代码校验,错误的输入需要提示错误所在,并能够再次输入,输入0退出程序) 3.合法的两个输入后,输出两个日期之间相差的天数
下面是一个实现你要求的Java程序:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;
public class DateDifference {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate date1 = null;
LocalDate date2 = null;
boolean validDate1 = false;
boolean validDate2 = false;
while (true) {
System.out.println("请输入第一个日期(yyyyMMdd),输入0退出程序:");
String input1 = scanner.nextLine();
if (input1.equals("0")) {
System.exit(0);
}
try {
date1 = LocalDate.parse(input1, formatter);
if (date1.getYear() < 1970 || !isValidDate(date1)) {
throw new IllegalArgumentException("日期不合法!");
}
validDate1 = true;
} catch (Exception e) {
System.out.println("第一个日期输入有误!" + e.getMessage());
}
System.out.println("请输入第二个日期(yyyyMMdd),输入0退出程序:");
String input2 = scanner.nextLine();
if (input2.equals("0")) {
System.exit(0);
}
try {
date2 = LocalDate.parse(input2, formatter);
if (date2.getYear() < 1970 || !isValidDate(date2)) {
throw new IllegalArgumentException("日期不合法!");
}
validDate2 = true;
} catch (Exception e) {
System.out.println("第二个日期输入有误!" + e.getMessage());
}
if (validDate1 && validDate2) {
long days = ChronoUnit.DAYS.between(date1, date2);
System.out.println("两个日期相差 " + days + " 天。");
break;
}
}
}
private static boolean isValidDate(LocalDate date) {
int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return day <= 29;
} else {
return day <= 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
return day <= 30;
} else {
return day <= 31;
}
}
}
```
程序使用了 `Scanner` 类来读取用户输入,使用了 `DateTimeFormatter` 类来解析日期字符串,使用了 `LocalDate` 类来处理日期。程序的主体部分包含一个无限循环,直到用户输入的两个日期都合法才会退出。
`isValidDate()` 方法用于判断日期是否合法,该方法会检查日期的年月日是否在合法范围内,并且会判断月份和日期是否匹配。如果日期不合法,会抛出一个 `IllegalArgumentException` 异常,并提示错误原因。
如果输入的两个日期都合法,程序会使用 `ChronoUnit.DAYS.between()` 方法计算两个日期之间相差的天数,并输出到控制台中。
下面是一个示例运行结果:
```
请输入第一个日期(yyyyMMdd),输入0退出程序:
20210901
请输入第二个日期(yyyyMMdd),输入0退出程序:
20220901
两个日期相差 365 天。
```
ava输出1234是一个非常特殊的四位数,因为它的各位数之和为10,编程求所有这样的四位正整数,并要求这四个位数中没有0。用空格分开回车行结束
在编程中,你可以通过循环结构遍历所有的可能组合来找到满足条件的四位数。由于题目要求没有0,我们可以从1到9这九个数字中选择每一位。对于每个千位数,从1开始尝试;然后对于百位、十位和个位,分别从当前剩下的数字中选择。当找到符合条件的组合时,将其添加到结果列表中。
这是一个简单的Python示例:
```python
result = []
for num in range(1, 10): # 千位数
for hundred in range(1, 10): # 百位数
if hundred + num > 9: # 防止进位导致百位大于9
break
for ten in range(1, 10): # 十位数
if ten + hundred + num > 9: # 同理,防止进位
break
for one in range(1, 10): # 个位数
if one + ten + hundred + num == 10 and one != 0 and hundred != 0 and ten != 0 and num != 0: # 检查是否符合条件
result.append(f"{num}{hundred}{ten}{one}") # 添加到结果
# 输出结果
for num in result:
print(num)
```
阅读全文