Java代码实现 判断中英文姓名,中文名保留最后一个字符,英文名保留最后一个单词
时间: 2023-08-31 20:41:49 浏览: 376
### 回答1:
可以使用Java中的String类来解决这个问题。可以先通过检查字符串中是否包含中文字符来判断名字是中文还是英文。如果是中文,可以使用String.substring()方法来保留最后一个字符;如果是英文,可以使用String.split()方法来保留最后一个单词。
### 回答2:
首先,我们可以使用Java中的字符串处理函数来实现这个功能。具体步骤如下:
1. 定义一个函数,并传入一个字符串作为参数,代表中英文姓名。
2. 首先,我们可以判断姓名是否符合中文名的格式。中文名通常只有一个字,所以我们可以使用Java的正则表达式来判断是否只有一个中文字符。正则表达式如下:
```java
String pattern = "[\\u4e00-\\u9fa5]";
boolean isChineseName = name.matches(pattern);
```
3. 如果输入的姓名是中文名,则直接保留最后一个字符即可。
4. 如果输入的姓名是英文名,则我们可以使用Java的字符串处理函数来实现保留最后一个单词的功能。具体步骤如下:
- 首先,使用String的trim()函数去除字符串两端的空格。
- 然后,使用String的lastIndexOf()函数找到字符串中最后一个空格的位置。
- 最后,使用String的substring()函数截取字符串从最后一个空格位置+1开始到字符串结尾的部分,即为最后一个单词。
完整的Java代码如下所示:
```java
public class NameProcessor {
public static String processName(String name) {
String pattern = "[\\u4e00-\\u9fa5]";
boolean isChineseName = name.matches(pattern);
if (isChineseName) {
return name.substring(name.length() - 1);
} else {
String trimmedName = name.trim();
int lastSpaceIndex = trimmedName.lastIndexOf(" ");
return trimmedName.substring(lastSpaceIndex + 1);
}
}
public static void main(String[] args) {
String chineseName = "张三";
String englishName = "John Doe";
System.out.println(processName(chineseName));
System.out.println(processName(englishName));
}
}
```
上述代码中,我们定义了一个静态函数`processName()`来处理中英文姓名。在`main()`函数中,分别传入一个中文名和一个英文名作为参数进行测试,并打印出结果。
对于中文名,该程序将返回最后一个字符"三";对于英文名,将返回最后一个单词"Doe"。
阅读全文