首页 > 学院 > 开发设计 > 正文

去除字符串中的数字 或者 保留数字

2019-11-08 19:29:49
字体:
来源:转载
供稿:网友

提取字符串的特殊内容

package sun.rain.amazing;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;/** * 编写一个程序,提取字符串中的数字符号。 * 依靠string类的各种方法 来完成相应的要求 * @author sunRainAmazing * */public class GetNumberByStringMethod { public static String STR = "abc123efg789hik007"; /** * 采用charAt(int index) 方法 * 要知道数字 0-9对应的char的int类型的数据 为 48 -57 */ @Test public void getNumber_charAt(){ StringBuffer sBuffer = new StringBuffer(); for (int i = 0; i < STR.length(); i++) { char ch = STR.charAt(i); if(48<=ch&&ch<=57){ sBuffer.append(ch); } } System.out.PRintln((char)9); System.out.println(sBuffer.toString()); } /** * String substring(int beginIndex) * 返回一个新的字符串,它是此字符串的一个子字符串。 */ @Test public void getNumber_substring(){ StringBuffer sBuffer = new StringBuffer(); for (int i = 0; i <STR.length(); i++) { for (int j = 0; j < 10; j++) { if((j+"").equals(STR.substring(i, i+1))){ sBuffer.append(STR.substring(i, i+1)); } } } System.out.println(sBuffer.toString()); //System.out.println(Integer.parseInt("a")); //java.lang.NumberFormatException: For input string: "a" } /** * char[] toCharArray() * 将此字符串转换为一个新的字符数组。 * 要知道数字 0-9对应的char的int类型的数据 为 48 -57 */ @Test public void getNumber_toCharArray(){ StringBuffer sBuffer = new StringBuffer(); char[] ch = STR.toCharArray(); for (int i = 0; i <ch.length; i++) { if(48<=ch[i]&&ch[i]<=57){ sBuffer.append(ch[i]); } } System.out.println(sBuffer.toString()); //System.out.println(Integer.parseInt("a")); //java.lang.NumberFormatException: For input string: "a" } /** * 采用正则表达式的形式 */ @Test public void getNumber_patterReg(){ StringBuffer sBuffer = new StringBuffer(); String regex = "//d"; // /d 数字:[0-9] //1、注册 匹配格式 Pattern pattern = Pattern.compile(regex); //2、调用匹配 目标字符串 Matcher matcher = pattern.matcher(STR); //进行依次查找相应的内容 while (matcher.find()) { //System.out.println(matcher.group()); sBuffer.append(matcher.group()); } System.out.println(sBuffer.toString()); } /**Pattern public static Pattern compile(String regex)将给定的正则表达式编译到模式中。 参数: regex - 要编译的表达式 抛出: PatternSyntaxException - 如果表达式的语法无效Matcher public boolean matches()尝试将整个区域与模式匹配。 如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 返回: 当且仅当整个区域序列匹配此匹配器的模式时才返回 true。 public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。 此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了 并且从那时开始匹配器没有被重置,则从以前匹配操作没有 匹配的第一个字符开始。 如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 返回: 当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。 public String group()返回由以前匹配操作所匹配的输入子序列。 对于具有输入序列 s 的匹配器 m,表达式 m.group() 和 s.substring(m.start(), m.end()) 是等效的。 注意,某些模式(例如,a*)匹配空字符串。 当模式成功匹配输入中的空字符串时,此方法将返回空字符串。 指定者:接口 MatchResult 中的 group 返回: 以前匹配操作所匹配的字符串形式的子序列(可能为空)。 抛出: IllegalStateException - 如果没有尝试任何匹配, 或者以前的匹配操作失败。 */}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表