java实现处理字符串,将手机号码的后四位用*号隐藏,输入输出字符串格式如下例所示。输入: 姓名:张三,电话:13504341234输出: 张三1350434****
时间: 2024-11-15 21:14:03 浏览: 2
在Java中,你可以使用String的replace()方法来实现这个需求。这里是一个简单的示例:
```java
public class Main {
public static void main(String[] args) {
String name = "张三";
String phoneNumber = "13504341234";
// 提取手机号的前几位和后四位
int start = phoneNumber.length() - 4;
String hiddenNumber = "*".repeat(start);
// 使用replace方法替换手机号的后四位
String result = name + ",电话:" + phoneNumber.substring(0, start) + hiddenNumber;
System.out.println(result);
}
}
```
在这个例子中,我们首先获取到手机号的最后四个字符,然后使用`"*".repeat(start)`创建一个星号序列,长度等于隐藏的数字位数。接着,通过`substring(0, start)`取出手机号的前部分,并将其与隐藏的部分拼接起来。
运行上述代码会得到预期的结果:
```
张三,电话:1350434****
```
相关问题
用java编写处理字符串,将手机号码的后四位用*号隐藏,输入输出字符串格式如下例所示。 输入: 姓名:张三,电话:13504341234 输出: 张三1350434****
在Java中,你可以通过字符串操作和正则表达式轻松地完成这个任务。下面是一个简单的示例代码片段:
```java
public class Main {
public static void main(String[] args) {
String input = "姓名:张三,电话:13504341234";
String output = hidePhoneNumber(input);
System.out.println(output);
}
public static String hidePhoneNumber(String str) {
// 使用正则表达式匹配电话号码部分
Pattern pattern = Pattern.compile("\\d{3}-(\\d{4})");
Matcher matcher = pattern.matcher(str);
// 如果找到匹配,替换后四位为星号
if (matcher.find()) {
String phoneNumber = matcher.group(1); // 获取电话号码
return str.replaceFirst(pattern.pattern(), phoneNumber.substring(0, 3) + "***" + phoneNumber.substring(7)); // 隐藏后四位
} else {
return str; // 如果没找到电话号码,则直接返回原字符串
}
}
}
```
在这个例子中,`hidePhoneNumber`函数查找输入字符串中形如`XXX-XXXXX`的电话号码,并将其后四位替换为星号。运行上述代码,会得到期望的结果。
java 16进制转成字符串_java 16进制转成字符串
### 回答1:
Java中可以通过将16进制字符串转成字节数组,再通过字符集转成字符串来实现将16进制转成字符串的操作。以下是一个示例代码:
```java
public static String hexToString(String hex) {
byte[] bytes = new byte[hex.length() / 2];
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte) Integer.parseInt(hex.substring(2 * i, 2 * i + 2), 16);
}
return new String(bytes, StandardCharsets.UTF_8);
}
```
其中,`hex`是一个16进制字符串,`bytes`是将16进制字符串转成的字节数组,最后通过`new String(bytes, StandardCharsets.UTF_8)`将字节数组转成字符串。使用方法如下:
```java
String hex = "68656c6c6f";
String str = hexToString(hex);
System.out.println(str); // 输出:hello
```
### 回答2:
Java中可以通过使用Integer类的静态方法parseInt(),将16进制字符串转换为整数类型,然后再将整数类型转换为对应的字符。
具体步骤如下:
1. 创建一个16进制字符串,例如"7B"。
2. 使用Integer类的静态方法parseInt(),将十六进制字符串转换为对应的整数类型。代码示例:int num = Integer.parseInt("7B", 16),其中的16表示输入字符串是16进制的。
3. 将得到的整数类型转换为字符类型。代码示例:char ch = (char) num。
4. 打印输出字符。代码示例:System.out.println(ch)。
完整代码如下所示:
```java
public class HexToChar {
public static void main(String[] args) {
String hexStr = "7B";
int num = Integer.parseInt(hexStr, 16);
char ch = (char) num;
System.out.println(ch);
}
}
```
以上代码将会输出字符'{',因为16进制数7B对应的ASCII码是123,而123对应的字符是'{'。
以上是将一个16进制字符串转换为一个字符的方法,如果需要将一个16进制字符串转换为一个字符串,可以使用String类的构造方法将字符数组转换为字符串。
具体步骤如下:
1. 创建一个16进制字符串,例如"68656C6C6F"。
2. 将16进制字符串转换为字节数组。代码示例:byte[] byteArray = new BigInteger(hexStr, 16).toByteArray()。
3. 根据字节数组创建一个字符串。代码示例:String str = new String(byteArray)。
完整代码如下所示:
```java
import java.math.BigInteger;
public class HexToString {
public static void main(String[] args) {
String hexStr = "68656C6C6F";
byte[] byteArray = new BigInteger(hexStr, 16).toByteArray();
String str = new String(byteArray);
System.out.println(str);
}
}
```
以上代码将会输出字符串"hello",因为16进制字符串"68656C6C6F"转换为字节数组后,对应的ASCII码就是"h"、"e"、"l"、"l"、"o",而这些ASCII码对应的字符就是"hello"。
### 回答3:
要将一个十六进制字符串转换为字符串,我们可以使用Java的内置函数和库来完成。可以按照以下步骤进行:
第一步,将十六进制字符串拆分成两个字符为一组的字符串。例如,如果输入的十六进制字符串是"616263",则将其拆分为["61", "62", "63"]。
第二步,将每个拆分后的字符串转换为十六进制表示的整数值。可以使用Integer.parseInt()函数来实现此步骤。例如,将字符串"61"转换为整数97。
第三步,将每个整数值转换为对应的字符。可以使用Java的内置Char类型来实现此步骤。例如,将整数97转换为字符'a'。
第四步,将所有字符拼接在一起,形成最终的字符串。可以使用Java的内置String类型的+=运算符来实现此步骤。
通过按照上述步骤进行操作,我们可以将十六进制字符串转换为相应的字符串。
以下是一个Java代码示例:
```java
public class HexToString {
public static String hexToString(String hex) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hex.length(); i += 2) {
String hexPair = hex.substring(i, i + 2);
int decimalValue = Integer.parseInt(hexPair, 16);
char characterValue = (char) decimalValue;
sb.append(characterValue);
}
return sb.toString();
}
public static void main(String[] args) {
String hexString = "616263";
String result = hexToString(hexString);
System.out.println(result); // 输出 "abc"
}
}
```
在上述示例中,我们定义了一个名为hexToString的方法来完成十六进制转换为字符串的操作。然后,在main方法中,我们定义了一个示例十六进制字符串"616263"并调用hexToString方法来将其转换为字符串。最后,我们打印输出结果"abc"。
阅读全文