项是一个或多个数字或字符串的逗号分隔列表,例如
"12"
"abc"
"12,abc,3"
Run Code Online (Sandbox Code Playgroud)
我正在尝试匹配Java中零个或多个项目的括号列表,例如
""
"(12)"
"(abc,12)"
"(abc,12),(30,asdf)"
"(qqq,pp),(abc,12),(30,asdf,2),"
Run Code Online (Sandbox Code Playgroud)
对于最后一个示例,它应分别返回以下匹配组
qqq,pp
abc,12
30,asdf,2
Run Code Online (Sandbox Code Playgroud)
我想出了以下(不正确)模式
\((.+?)\)(?:,\((.+?)\))*
Run Code Online (Sandbox Code Playgroud)
这与上一个示例仅匹配以下内容
qqq,pp
30,asdf,2
Run Code Online (Sandbox Code Playgroud)
提示?谢谢
我已将我的应用程序迁移到log4j 2,并且我已通过log4j2.xml进行了配置
但是,我使用的一些库依赖于log4j 1.如果我使用以下命令运行应用程序:
-Dlog4j.configurationFile=path/to/log4j2.xml
Run Code Online (Sandbox Code Playgroud)
log4j 1抱怨找不到配置文件.我正在使用log4j 2,log4j-1.2-api-2.0-rc1.jar提供的log4j 1.x桥.是否可以使用单个log4j2.xml进行配置?
我尝试过的另一种方法是将log4j和log4j2配置在一起:
-Dlog4j.configurationFile=path/to/log4j2.xml -Dlog4j.configuration=path/to/log4j.xml
Run Code Online (Sandbox Code Playgroud)
我担心的是我的日志配置文件和输出的碎片.我也担心log4j.xml和log4j2.xml之间可能存在冲突.例如,logfile error.log配置为使用log4j 1中的FileAppender和log4j 2中的RollingFileAppender.
有什么建议?
[注意]
这是我看到的错误:
log4j:WARN No appenders could be found for logger (org.apache.activemq.util.ThreadPoolUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)
我正在使用的log4j 2的版本是log4j 2.0 rc1.
[回答]
似乎activemq-5.8.0.jar与log4j 1捆绑在一起.解决方案只是在activemq之前加载log4j 1.x桥.
可以通过配置禁用log4j2中的关闭挂钩:
<Configuration shutdownHook="disable">
Run Code Online (Sandbox Code Playgroud)
有可能以编程方式这样做吗?
在测试indexOf的返回值时,您通常会写什么?
if str.indexOf("a") < 0
Run Code Online (Sandbox Code Playgroud)
VS
if str.indexOf("a") == -1
Run Code Online (Sandbox Code Playgroud)
一种方法比另一种方法更受欢迎吗?
我实际上是为任何语言中的任何函数提出这个问题,错误时返回-1.
我通常更喜欢<0方法,因为如果函数扩展为在某些其他情况下返回-2,代码仍然可以工作.
但是,我注意到== -1方法更常用.有原因吗?
我为一个问题设计了以下内容:
class Animal {
// ...
}
class Guppy extends Animal { ... }
class Pigeon extends Animal { ... }
class TailedAnimal extends Animal {
// ...
}
class Dog extends TailedAnimal { ... }
class Cat extends TailedAnimal { ... }
class HornedAnimal extends Animal {
// ...
}
class Ram extends HornedAnimal { ... }
public static void main(String[] args) {
Animal a = getSomeAnimal();
a.doSomething();
if (a instanceof TailedAnimal) {
// do something
}
if (a …Run Code Online (Sandbox Code Playgroud) 我在Java中使用Observable类/ Observer接口来实现观察者模式.Observer接口需要覆盖更新(Observable o,Object arg)方法.
问题是我正在观察相当数量的类,并且我的update()方法已经变得非常大:
public class Foo implements Observer {
....
public void update(Observable o, Object param) {
if (o instanceof A) {
// large chunk of code
...
} else if (o instanceof B) {
// large chunk of code
...
}
...
} else if (o instanceof H) {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了拆分方法,我正在考虑使用例如AObserver接口,BObserver接口来扩展Observer接口,这需要分别覆盖onAUpdate,onBUpdate .. 此方法还可以根据实现的接口轻松确定类正在观察的Observable.
class Foo implements AObserver, BObserver {
....
public void onAUpdate(Observable o, Object param) {
if (o instanceof A) {
// large …Run Code Online (Sandbox Code Playgroud) Python 3.2 中整数除法//比浮点除法更快吗?/如果我知道我将只使用整数,我应该赞成//而不是默认吗/?
如何在 Python 3.2 中获得整数截断行为?
1/2 = 0
-1/2 = 0
谢谢。
我是一名 Emacs 新用户,正在学习如何垂直分割窗口并循环每个窗格中的缓冲区。
但是,在一个窗格中打开新文件后,next-buffer 不会在另一个窗格中循环遍历该文件,而是仅在该文件在新窗格中出现一次后才循环。这可以复制如下:
在新的 emacs 会话中打开 2 个文件 A 和 B。
使用“split-window-right”垂直分割窗口。
“next-buffer”在 PaneLeft 和 PaneRight 中循环遍历 A 和 B。
在 PaneLeft 中打开文件 C。
“next-buffer”在 PaneLeft 中循环 A、B、C。
确保 C 聚焦在 PaneLeft,然后切换到 PaneRight。“next-buffer”仅循环访问 PaneRight 中的 A 和 B。它跳过 C 可能是因为 C 已经在 PaneLeft 中可见。
切换回 PaneLeft,并确保 A 或 B 聚焦在 PaneLeft 中。
切换回 PaneRight,现在“下一个缓冲区”会循环通过 A、B 和 C,而不管 PaneLeft 中可见的内容。
这是预期的行为吗?我怎样才能让它按我的预期工作?
注意:我运行时没有任何自定义扩展,并且我的 .emacs 几乎是空的。
我有以下数据
Food $44
Transport $52
Rentals $102
...
Run Code Online (Sandbox Code Playgroud)
我想转换成以下内容
Food $44
Transport $52
Rentals $102
...
Run Code Online (Sandbox Code Playgroud)
Emacs中是否有内置功能可以执行此操作?我不熟悉elisp.谢谢.
我有一个超类Shape,类Triangle,Square等扩展Shape.我有两个当前的问题:
Triangle extends Shape不编译.它必须返回一个Shape,而不是三角形.public class Shape {
public static Shape createShapeFromXML(String xml) {
String type = parse(xml);
if (type.equals("Triangle") {
Triangle.createShapeFromXML(xml);
} else if (...) {
// ...
}
}
}
public class Triangle extends Shape {
public static Triangle createShapeFromXML(String xml) {
....
}
}
public static void main(String[] args) {
String xml = ...
Shape s = Shape.createShapeFromXML(xml);
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这些问题?
我在大量方法中出现了以下大量的页眉和页脚代码.是否有更清洁的方式来实现这一点?
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
//do some work
...
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}
Run Code Online (Sandbox Code Playgroud)
有问题的类实际上是一个EJB 2.0 SessionBean,它看起来像:
public class PersonManagerBean implements SessionBean {
public void addPerson(String name) {
// boilerplate
// dostuff
// boilerplate
}
public void deletePerson(Long id) {
// boilerplate
// dostuff
// boilerplate
}
}
Run Code Online (Sandbox Code Playgroud) 这个功能有一个单行程吗?
int side = width < height ? width : height;
width = side;
height = side;
Run Code Online (Sandbox Code Playgroud) java ×8
emacs ×2
inheritance ×2
log4j2 ×2
composition ×1
division ×1
emacs24 ×1
javascript ×1
log4j ×1
logging ×1
observable ×1
python ×1
refactoring ×1
regex ×1