一个地址由 <username>@<hostname>[/resources]组成。 其中username和hostname 其中用户名和主机名 之间只允许有一个@;尖括号<>内包含的为必选 之间只允许有一个@;尖括号<>内包含的为必选 项,方括号〔 〕内包含的为可选项。如果/出现,则必须跟有resource字段。各字段要求如下: 项,方括号()内包含的为可选项.如果/出现,则必须跟有资源字段.各字段要求如下: 1. username字段允许大写、小写字母,数字、下划线,其长度应在1到16。 1.用户名字段允许大写、小写字母,数字、下划线,其长度应在1到16。 2. hostname字段类似网址,允许用一个或多个﹒来分割,但不允许连续两个﹒连在一起。同时,hostname不允许以﹒开头或结束。每一段的要求同username字段,分隔出的每一部分长度在1到16,hostname字段的总长度在1到32。 2.主机名字段类似网址,允许用一个或多个.来分割,但不允许连续两个.连在一起.同时,主机名不允许以.开头或结束.每一段的要求同用户名字段,分隔出的每一部分长度在1到16,主机名字段的总长度在1到32。 3. resource字段要求同username字段,不限制长度。 3.资源字段要求同用户名字段,不限制长度。 现给出一个地址,请判断是否合法。 现给出一个地址,请判断是否合法. 用java写出这道算法题
时间: 2023-03-31 12:03:00 浏览: 146
java用正则表达式判断电子邮件地址是否合法.doc
public class AddressValidator {
public static boolean isValidAddress(String address) {
String regex = "^<([a-zA-Z-9_]{1,16})@(([a-zA-Z-9][a-zA-Z-9-]{,14}[a-zA-Z-9])\\.){1,}[a-zA-Z]{2,6}>(\\/[a-zA-Z-9_]+)?$";
return address.matches(regex);
}
}
// 测试代码
public class AddressValidatorTest {
public static void main(String[] args) {
String[] addresses = {
"<username>@<hostname>",
"<username>@<hostname>/resources",
"<user_name>@<host-name>.com",
"<user_name>@<host-name>.com/resources",
"<user_name>@<host-name>.com/resources/123",
"<user_name>@<host-name>.com/resources/abc_def"
};
for (String address : addresses) {
System.out.println(address + " is valid: " + AddressValidator.isValidAddress(address));
}
}
}
阅读全文