我在Arraylist中有一组字符串。带数字的java字符串
我想删除所有字符串,只有数字 也是这样的字符串:(0.75%),$ 1.5 ..基本上所有不包含字符。 2)我想在写入控制台之前删除字符串中的所有特殊字符。 “神应印神 & QUOT;包括应印:quoteIncluding “发现应该发现
我在Arraylist中有一组字符串。带数字的java字符串
我想删除所有字符串,只有数字 也是这样的字符串:(0.75%),$ 1.5 ..基本上所有不包含字符。 2)我想在写入控制台之前删除字符串中的所有特殊字符。 “神应印神 & QUOT;包括应印:quoteIncluding “发现应该发现
当你说‘的人物,’我假设你的意思是只‘A到Z’和“A从A到Z”你可能想使用正则表达式(正则表达式)为D1E在评论中提到下面是一个使用的replaceAll方法的例子
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>(5);
list.add("\"God");
list.add(""Including");
list.add("'find");
list.add("24No3Numbers97");
list.add("w0or5*d;");
for (String s : list) {
s = s.replaceAll("[^a-zA-Z]",""); //use whatever regex you wish
System.out.println(s);
}
}
}
这段代码的输出如下:。
神
quotIncluding
找到
NoNumbers
字
的的replaceAll方法使用正则表达式和替换所有与第二个参数匹配(在这种情况下,空字符串)。
Java拥有非常好的Pattern class,它使用正则表达式。你一定要详细阅读。一个很好的参考指南是here.
我打算为您发布一个编码解决方案,但styfle击败了我!我会做不同,这里唯一的办法就是内部的for循环中,我会使用的模式和匹配器类,因为这样:
for(int i = 0; i < myArray.size(); i++){
Pattern p = Pattern.compile("[a-z][A-Z]");
Matcher m = p.matcher(myArray.get(i));
boolean match = m.matches();
//more code to get the string you want
}
但是过于笨重。 styfle的解决方案简洁而简单。
很棒的回答。欢迎来到堆栈溢出! – 2011-05-12 12:44:23
非常感谢!这个社区真棒。 :) – SpacePyro 2011-05-12 13:45:50
我闻到[正则表达式](http://download.oracle.com/javase/tutorial/essential/regex/)。 – JMelnik 2011-05-12 05:45:47
“..一切都不包含字符..”这是线索!为什么不考虑'删除',为什么不考虑'包括','A-Z'和'a-z'只有26 + 26个字母。 – 2011-05-12 05:52:20
你到目前为止尝试过什么? – MatthewD 2011-05-12 06:21:25