从开头和结尾删除非字母数字字

当我从数据库表中获取字符串时,下面给出的字符串
#$%^&*\n\r\t公司;姓名; xyz; 美国广播公司;pqr; \t\r@#$()-

上面的示例字符串开头和结尾有非字母数字字符,所以我想删除给定字符串的所有非字母数字粗体字符开头和结尾

用简单的语言我想要这个字符串:“公司;名称;xyz;abc;pqr; ”


素胚勾勒不出你
浏览 103回答 2
2回答

慕盖茨4494581

你可以这样做:    String example="#$%^&*\n\r\t company; name; xyz; abc; pqr; \t\r@#$()-";    String result = example.replaceAll("(^[^\\w;]+|[^\\w;]+$)", "");    System.out.println(result);它打印:公司; 姓名; xyz; 美国广播公司;pqr;它可以用两个替换来替换 - 用于字符串的开头,然后用于结尾:   String result=example.replaceAll("^[^\\w;]+", "").replaceAll("[^\\w;]+$", ""));

子衿沉夜

正则表达式的另一种方法是遍历字符串的字符,然后找出第一个分别最后遇到的字母数字值的开始和结束索引:public static String trim(String input) {&nbsp; &nbsp; int length = input.length(), start = 0, end = length;&nbsp; &nbsp; // iterate from the start&nbsp; &nbsp; // until the first alphanumeric char is encountered&nbsp; &nbsp; while (start < length && notAlphaNumeric(input.charAt(start++))) {}&nbsp; &nbsp; start--;&nbsp; &nbsp; // iterate from the end&nbsp; &nbsp; // until the first alphanumeric char is encountered&nbsp; &nbsp; while (0 < end && notAlphaNumeric(input.charAt(--end))) {}&nbsp; &nbsp; end++;&nbsp; &nbsp; // return the original string if nothing has changed&nbsp; &nbsp; if (start == 0 && end == length) return input;&nbsp; &nbsp; // return an empty string if the indices passed one another&nbsp; &nbsp; if (start >= end) return "";&nbsp; &nbsp; // else return the substring from start to end&nbsp; &nbsp; return input.substring(start, end);}private static boolean notAlphaNumeric(char c) {&nbsp; &nbsp; return c != ';' && (c < '0' || c > '9') && (c < 'A' || c > 'Z') && (c < 'a' || c > 'z');}我定义为字母数字的值与此正则表达式组匹配:[;0-9a-zA-Z]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java