0

我有一个java问题。当遇到一个或多个“#”实例时,我不知道如何编写正则表达式以将某些内容打印到文件中。“”时不能打印, “#”string equals时必须打印。string equals这是我的代码:

int num = 1;
StringBuffer noletterbuf = new StringBuffer(nospaces);
noletterbuf.deleteCharAt(0);
String noletter = noletterbuf.toString();
//if(num == noletter.split("[^#]").length){//applies # to C# and C
if(num == noletter.split("[#*]").length){//applies # to C
double yacc = octave*-50;
p6.println("sb.append(\"/Times-Roman findfont 70 scalefont setfont 1 -1 scale newpath  \"); sb.append(" + xaccplace + " + \" \" +" + yacc + " + \" moveto \"); sb.append(\"( # ) show 1 -1 scale \");");
}

提前致谢!比约恩

4

3 回答 3

4

为什么要使用正则表达式.split(),因为您只是丢弃了结果数组?

您可以#使用以下命令检查字符串是否包含:

if (noletter.indexOf('#') >= 0) {
    // ...
}
于 2013-03-03T17:48:29.060 回答
0

使用正则表达式检查的一种简单方法是:

if (str.matches(".*#.*")) // true if there's a # in str

我不明白“无空格”的相关性,或者你为什么使用 StringBuffer,或者为什么你删除了第一个字符。

于 2013-07-25T21:22:59.827 回答
0

你的代码:

noletter.split("[#*]")

这将在 each#和 each处拆分*,因为星号在括号内。

于 2013-03-03T17:50:56.353 回答