小编Lap*_*aig的帖子

java转义括号

我有这个小类来对字符串进行多次替换:

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 \"\'\)" …

java regex escaping parentheses

14
推荐指数
2
解决办法
3万
查看次数

Java PropertyChangeListener

我正在试图弄清楚如何在另一个班级中听取属性变化.以下是我的代码:

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)

java

10
推荐指数
1
解决办法
4万
查看次数

Eclipse:来自单一来源的多个项目

起初我不得不说我对英语不太好,所以如果我能很好地解释我的意思,我很抱歉:)

我有一个项目,我需要复制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不是解决方案,因为它无法导出资产文件.

我开始为这个问题寻找详细答案的赏金...请帮助:(

eclipse android cordova

6
推荐指数
2
解决办法
3758
查看次数

使用Jackson将JSON字符串转换为Java映射时出错

我有这段小代码,我正在尝试将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)

我究竟做错了什么?

java json dictionary hashmap jackson

5
推荐指数
1
解决办法
2万
查看次数

找不到java.lang.ArrayIndexOutOfBoundsException的问题

我有一个问题我的应用程序有时在控制台中返回此错误,但我找不到原点(所有未知来源).应用程序似乎在此错误后正常工作,但我想了解正在发生什么......我该怎么办?

谢谢你,对不起我的英文!

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)

java debugging exception-handling exception

5
推荐指数
1
解决办法
1837
查看次数

Magento:从一个团队中获取所有客户

就像在标题上说的一样,我需要将所有用户分配到特定组.

在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)

谢谢!

php magento

4
推荐指数
1
解决办法
1万
查看次数

JFrame中java CardLayout的奇怪问题

你好,我有一个带有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".

我错过了什么?

java swing actionlistener cardlayout

3
推荐指数
1
解决办法
1438
查看次数

Facebook在线朋友

香港专业教育学院尝试了一些解决方案,以获取我的朋友在线列表:

Facebook FQL查询让所有用户在线

如何使用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聊天中的用户数.你知道为什么吗?

facebook facebook-fql

3
推荐指数
1
解决办法
7072
查看次数

java.lang.Thread.State:BLOCKED

我的应用程序有时会冻结,在控制台没有任何错误.我做了一个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 debugging swing

2
推荐指数
1
解决办法
7488
查看次数