java 非法字符判断_关于“判断字符串是否含有非法字符”的思考
时间: 2023-08-19 11:04:02 浏览: 91
判断字符串是否含有非法字符可以采用正则表达式,例如可以使用如下代码实现:
```java
public boolean isLegalString(String str) {
String regex = "[^a-zA-Z0-9\u4e00-\u9fa5]"; // 非中英文数字字符
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return !matcher.find();
}
```
其中,`regex` 是一个正则表达式,表示非中英文数字字符。`Pattern` 和 `Matcher` 是 Java 中用于正则表达式匹配的类。`matcher.find()` 表示在字符串中搜索是否存在与正则表达式匹配的子串,若存在则返回 `true`,否则返回 `false`。
使用该方法,可以判断字符串是否含有非法字符。如果返回 `true`,则表示字符串合法;如果返回 `false`,则表示字符串中含有非法字符。
相关问题
java判断非法字符串
在Java中判断一个字符串是否为非法字符串可以根据具体的需求来定义非法字符串的规则。以下是一个示例代码来判断字符串是否包含特定的非法字符:
```java
public static boolean isIllegalString(String str) {
// 定义非法字符
String illegalChars = "!@#$%^&*";
// 判断字符串是否包含非法字符
for (int i = 0; i < str.length(); i++) {
if (illegalChars.contains(String.valueOf(str.charAt(i)))) {
return true;
}
}
return false;
}
```
使用示例:
```java
String str = "abc!def"; // 测试字符串
boolean isIllegal = isIllegalString(str);
System.out.println("字符串是否包含非法字符:" + isIllegal);
```
a) 编写判断日期字符串是否合法的应用的测试用例并运行之;
以下是一个测试日期字符串是否合法的应用的测试用例:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class DateUtilsTest {
@Test
public void testIsValidDate() {
// 测试合法日期格式
assertTrue(DateUtils.isValidDate("2021-07-20", "yyyy-MM-dd"));
assertTrue(DateUtils.isValidDate("2021/07/20", "yyyy/MM/dd"));
assertTrue(DateUtils.isValidDate("2021.07.20", "yyyy.MM.dd"));
assertTrue(DateUtils.isValidDate("2021-07-20 12:34:56", "yyyy-MM-dd HH:mm:ss"));
// 测试非法日期格式
assertFalse(DateUtils.isValidDate("2021-07-32", "yyyy-MM-dd"));
assertFalse(DateUtils.isValidDate("2021-13-20", "yyyy-MM-dd"));
assertFalse(DateUtils.isValidDate("2021-02-29", "yyyy-MM-dd"));
assertFalse(DateUtils.isValidDate("2021-07-20 25:00:00", "yyyy-MM-dd HH:mm:ss"));
}
}
```
在上面的测试用例中,我们测试了一些合法和非法的日期格式,包括年月日、年月日时分秒等不同格式的日期字符串。我们使用JUnit框架来编写测试用例,并使用assertTrue和assertFalse方法来判断结果是否符合预期。如果测试用例通过,说明我们的日期字符串是否合法的应用可以正常工作。