我有这个小类来对字符串进行多次替换:
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
public class MultipleReplace {
public static void main(String[] args) {
Map<String,String> tokens = new HashMap<String,String>();
tokens.put(":asd:", "<img src=asd.gif>");
tokens.put(":)", "<img src=sorriso.gif>");
String template = ":asd: bravo! :)";
String patternString = "(" + StringUtils.join(tokens.keySet(), "|") + ")";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(template);
StringBuffer sb = new StringBuffer();
while(matcher.find()) {
matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
}
matcher.appendTail(sb);
System.out.println(sb.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
问题是在第二次替换,我有一个括号导致:
线程"main"中的异常java.util.regex.PatternSyntaxException:索引8(:)|:asd :)附近的不匹配的结束')'
我怎么能逃脱括号?或者,你能建议一个替代方案来做多次替换吗?
非常感谢,对不起我的英语:)
编辑:
使用反斜杠转义')'也不起作用,它不会编译:
"无效的转义序列(有效转义序列为\ b\t \n\f\r \"\'\)" …
我正在试图弄清楚如何在另一个班级中听取属性变化.以下是我的代码:
ClassWithProperty具有我想要监听的属性:
public class ClassWithProperty {
private PropertyChangeSupport changes = new PropertyChangeSupport(this);
private int usersOnline;
public int getUsersOnline() {
return usersOnline;
}
public ClassWithProperty() {
usersOnline = 0;
while (usersOnline<10) {
changes.firePropertyChange("usersOnline", usersOnline, usersOnline++);
}
}
public void addPropertyChangeListener(
PropertyChangeListener l) {
changes.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(
PropertyChangeListener l) {
changes.removePropertyChangeListener(l);
}
}
Run Code Online (Sandbox Code Playgroud)
主要是我需要了解房产变化的地方:
public class Main {
private static ClassWithProperty test;
public static void main(String[] args) {
test = new ClassWithProperty();
test.addPropertyChangeListener(listen());
}
private static PropertyChangeListener listen() {
System.out.println(test.getUsersOnline()); …Run Code Online (Sandbox Code Playgroud) 起初我不得不说我对英语不太好,所以如果我能很好地解释我的意思,我很抱歉:)
我有一个项目,我需要复制n次; 每个新项目必须具有相同的源代码,但不同的资源(例如:图像,html文件,声音,pdf等)和不同的类/包名称.
我的项目不是标准的java,而是android + phonegap.我有一个eclipse插件,创建一个空的phonegap项目...也许有一种方法来修改这个插件来创建我的标准项目?
可能吗?最好的方法是还有一个系统将主要项目的源变更提交给孩子,但这不是强制性的.
对不起我的英语.
编辑:
对不起,如果我再次编辑这个问题,但实际上我找不到解决我的问题的方法.
我想将它与一个例子集成,也许我可以解释我需要什么.
想象一下,你已经为eclipse和phonegap开发了android应用程序,对于足球队来说,例如巴塞罗那.
该应用程序主要是在html + jquerymobile,但你已经修改了活动,android清单,添加了一些phonegap插件,一些媒体资源等.
现在你必须为更多的团队,很多团队复制这个应用程序.对于每个人,您必须创建一个新的phonegap项目,修改每个文件,添加插件,添加资产......这些任务不能没有错误.
但是最大的问题是:如果您的代码中只有一点点更新,那么如何在10/20/50/100/1000项目中复制它?
我已经添加了android,phonegap和cordova标签,以便更具体.
对不起我的英语.
编辑N°2
我刚刚玩了maven android插件一个多星期了,但没有成功.我需要的是集中代码,我可以在其中切换应用程序和包名,图标以及一些配置文件.
Android libs不是解决方案,因为它无法导出资产文件.
我开始为这个问题寻找详细答案的赏金...请帮助:(
我有这段小代码,我正在尝试将JSON字符串转换为地图.
String json = "[{'code':':)','img':'<img src=/faccine/sorriso.gif>'}]";
ObjectMapper mapper = new ObjectMapper();
Map<String,String> userData = mapper.readValue(json,new TypeReference<HashMap<String,String>>() { });
Run Code Online (Sandbox Code Playgroud)
但它返回以下错误:
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token
at [Source: java.io.StringReader@1b1756a4; line: 1, column: 1]
at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:198)
at org.codehaus.jackson.map.deser.MapDeserializer.deserialize(MapDeserializer.java:151)
at org.codehaus.jackson.map.deser.MapDeserializer.deserialize(MapDeserializer.java:25)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2131)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1402)
at CodeSnippet_19.run(CodeSnippet_19.java:13)
at org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain1.eval(ScrapbookMain1.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain.evalLoop(ScrapbookMain.java:54)
at org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain.main(ScrapbookMain.java:35)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有一个问题我的应用程序有时在控制台中返回此错误,但我找不到原点(所有未知来源).应用程序似乎在此错误后正常工作,但我想了解正在发生什么......我该怎么办?
谢谢你,对不起我的英文!
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validate(Unknown Source)
at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 就像在标题上说的一样,我需要将所有用户分配到特定组.
在magento中,我创建了一个名为"customers"且ID为4的客户组.
现在我需要使用自定义脚本列出magento之外的该组中的所有用户,但我找不到解决方案.
使用这个小代码,我可以获得所有注册用户,你知道我如何过滤这个只能获得组ID 4的客户吗?
$collection = Mage::getModel('customer/customer')
->getCollection()
->addAttributeToSelect('*');
$result = array();
foreach ($collection as $customer) {
$result[] = $customer->toArray();
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
你好,我有一个带有CardLayout和3张卡的Jframe.我在第一张卡片上的按钮上有一个ActionListener.
这段代码运行良好:
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards, "wait");
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当我添加代码在服务器上进行登录时(我正在开发一个xmpp客户端):
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards, "wait");
xmppManager = new Xmpp("jabberserver", 5222);
try {
xmppManager.init();
} catch (XMPPException e) {
e.printStackTrace();
}
cl.show(cards, "userList");
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,当用户按下登录按钮,登录,然后显示另一张卡时,我需要显示"请稍候"的卡片.但在这种情况下,"等待"卡不会显示,它会进行登录(大约需要5秒)并直接显示最终卡"userList".
我错过了什么?
香港专业教育学院尝试了一些解决方案,以获取我的朋友在线列表:
如何使用Facebook API使用FQL获取在线好友列表?
这是我的fql查询:
$fql = "SELECT uid, name, online_presence, status FROM user WHERE uid IN
( SELECT uid2 FROM friend WHERE uid1 = '".$me['id']."')";
Run Code Online (Sandbox Code Playgroud)
但99%的朋友都在场.我得到了存在(主动,空闲,离线),仅适用于6/7的朋友.状态字段也是如此.
我如何获得完整的状态和状态数据?我错过了什么?我需要为我的应用程序请求特定权限(目前我只有基本权限).
非常感谢你.
编辑:@ Roozbeh15解决方案是答案,但我需要fid为什么结果与聊天中的用户数量不同.fql用户计数始终<在fb聊天中的用户数.你知道为什么吗?
我的应用程序有时会冻结,在控制台没有任何错误.我做了一个jstack,但我无法理解什么是吸引力以及如何解决这种糟糕的情况:(
你能帮我么?这是jstack输出:
2011-03-09 00:20:26
Full thread dump Java HotSpot(TM) Client VM (19.1-b02 mixed mode, sharing):
"Java Sound Event Dispatcher" daemon prio=6 tid=0x083ce800 nid=0x6cc in Object.wait() [0x0cd1f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at com.sun.media.sound.EventDispatcher.dispatchEvents(Unknown Source)
- locked <0x29d4b458> (a com.sun.media.sound.EventDispatcher)
at com.sun.media.sound.EventDispatcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Smack Listener Processor (1)" daemon prio=6 tid=0x083cd000 nid=0x13b8 in Object.wait() [0x0b9ef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at javax.swing.text.AbstractDocument.readLock(Unknown Source)
- …Run Code Online (Sandbox Code Playgroud) java ×6
debugging ×2
swing ×2
android ×1
cardlayout ×1
cordova ×1
dictionary ×1
eclipse ×1
escaping ×1
exception ×1
facebook ×1
facebook-fql ×1
hashmap ×1
jackson ×1
json ×1
magento ×1
parentheses ×1
php ×1
regex ×1