Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 识别';字符串的正则表达式#';_Java_Regex - Fatal编程技术网

Java 识别';字符串的正则表达式#';

Java 识别';字符串的正则表达式#';,java,regex,Java,Regex,我有一个java问题。当遇到一个或多个“#”实例时,我不知道如何编写正则表达式将某些内容打印到文件中。当字符串等于”时不能打印,但当字符串等于“#”时必须打印。这是我的密码: int num=1; StringBuffer noletterbuf=新的StringBuffer(nospaces); noletterbuf.deleteCharAt(0); 字符串noletter=noletterbuf.toString(); //如果(num==noletter.split(“[^#]”).le

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

int num=1;
StringBuffer noletterbuf=新的StringBuffer(nospaces);
noletterbuf.deleteCharAt(0);
字符串noletter=noletterbuf.toString();
//如果(num==noletter.split(“[^#]”).length){//应用于C#和C
如果(num==noletter.split(“[#*]”).length){//应用于C
双yacc=倍频程*-50;
p6.println(“sb.append(\”/Times Roman findfont 70 scalefont setfont 1-1 scale newpath\”);sb.append(“+xaccplace+”+\“+”\”+“+”+“\”+”+“\”moveto\”);sb.append(\”(\)show 1-1 scale\”);
}
提前谢谢!
Bjorn

既然放弃了生成的数组,为什么还要使用regex和
.split()

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

if (noletter.indexOf('#') >= 0) {
    // ...
}

为什么要使用regex和
.split()
,因为您只需丢弃生成的数组

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

if (noletter.indexOf('#') >= 0) {
    // ...
}
您的代码:

noletter.split("[#*]")
这将在每个
#
和每个
*
处拆分,因为星号在括号内。

您的代码:

noletter.split("[#*]")

这将在每个
#
和每个
*
处分开,因为星号在括号内。

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

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

我不理解“无空格”的相关性,也不理解为什么要使用StringBuffer,或者为什么要删除第一个字符。

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

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

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

@CyrilleKarmann是的。但对于单字符检查,我总是使用
indexOf()
我相信它会更快。@Eric:
contains
只会调用
indexOf
。任何性能差异都应该是微不足道的/非瓶颈。@nhahtdh这可能是最小的影响,但是
indexOf(char)
indexOf(String)
不是同一种方法。(它们都有各自的实现。)我想这只是个人偏好。@CyrilleKarmann是的。但对于单字符检查,我总是使用
indexOf()
,因为我认为它更快。@Eric:
contains
只会调用
indexOf
。任何性能差异都应该是微不足道的/非瓶颈。@nhahtdh这可能影响很小,但
indexOf(char)
indexOf(String)
不是同一种方法。(它们都有各自的实现。)我想这只是个人偏好。