小编gsi*_*011的帖子

PatternSyntaxException:在Java中使用正则表达式时非法重复

我不太了解正则表达式,但我需要匹配一个简单的模式.以下应该返回true,

Pattern.matches("{\"user_id\" : [0-9]*}", inputLine)
Run Code Online (Sandbox Code Playgroud)

当inputLine是

{"user_id" : 34}
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个例外:

java.util.regex.PatternSyntaxException: Illegal repetition
{"user_id" : 24}
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.closure(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.<init>(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.matches(Unknown Source)
    at org.whispercomm.manes.server.http.IntegrationTest.createUser(IntegrationTest.java:173)
    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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) …
Run Code Online (Sandbox Code Playgroud)

java regex matcher

80
推荐指数
2
解决办法
7万
查看次数

如何将最小DatePicker日期设置为当前日期

我想将用户可以在DatePicker中选择的最小日期设置为当前日期.我试过这个:

DatePicker datePicker = (DatePicker) findViewById(R.id.event_date);
datePicker.setMinDate(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

这给了我以下例外:

12-01 12:23:31.226: E/AndroidRuntime(10311): Caused by: java.lang.IllegalArgumentException: fromDate: Sat Dec 01 12:23:31 EST 2012 does not precede toDate: Sat Dec 01 12:23:31 EST 2012
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

android android-datepicker

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

如何使用CSS选择器选择除first和last之外的所有子项

除了第一个和最后一个,我如何选择表格中的所有孩子?我已经尝试了这个,但它最终选择了所有不是第一个的孩子和所有不是最后的孩子,最终成为所有孩子:

table.programs tr td:not(:first-child), table.programs tr td:not(:last-child) {
}
Run Code Online (Sandbox Code Playgroud)

我想要所有既不是第一个也不是最后一个的孩子.我怎样才能做到这一点?

css css-selectors

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

如何检测Android浏览器的库存

导航到http://whatsmyuseragent.com/向我显示运行4.2.1的Galaxy Nexus上我的股票Android浏览器有用户代理

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24
Run Code Online (Sandbox Code Playgroud)

此用户代理中没有任何内容允许我唯一地检测到它是一个Android浏览器.Chrome for Android应用程序至少具有androidUA功能.有什么方法可以让我发现Android应用程序的存量吗?

user-agent android android-browser

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

如何在Google Maps API中移动标记

我正在使用谷歌地图API V3,我正试图在屏幕上移动标记.这就是我所拥有的:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map_canvas { height: 100% }
</style>
<script type="text/javascript"
    src="http://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
function initialize() {
  var myLatLng = new google.maps.LatLng(50,50);
  var myOptions = {
    zoom: 4,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  image = 'bus.gif';
  marker = new google.maps.Marker({position: myLatLng, map: map, icon: image});

  marker.setMap(map);
}

function moveBus() …
Run Code Online (Sandbox Code Playgroud)

javascript move google-maps-api-3 google-maps-markers

41
推荐指数
2
解决办法
13万
查看次数

如何将C++目标文件与ld链接

我正在尝试使用ld而不是g ++链接C++的输出.我只是这样做是为了学习如何做,而不是为了实际目的,所以请不要建议只用g ++来做.

看看这个问题,这个人在运行ld命令时会得到同样的错误:

$ ld test.o -o test.out
ld: warning: cannot find entry symbol _start; defaulting to 00000000004000e8
test.o: In function `main':
test.cpp:(.text+0x1c): undefined reference to `strcasecmp'
test.cpp:(.text+0x23): undefined reference to `std::cout'
test.cpp:(.text+0x28): undefined reference to `std::ostream::operator<<(int)'
test.cpp:(.text+0x2d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
test.cpp:(.text+0x35): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
test.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x75): undefined reference to `std::ios_base::Init::Init()'
test.cpp:(.text+0x7a): undefined reference to `__dso_handle'
test.cpp:(.text+0x84): undefined reference to `std::ios_base::Init::~Init()'
test.cpp:(.text+0x89): undefined …
Run Code Online (Sandbox Code Playgroud)

c++ linker linker-errors ld libstdc++

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

实现高斯模糊 - 如何计算卷积矩阵(内核)

我的问题非常接近这个问题:如何在不使用任何内置高斯函数的情况下高斯模糊图像?

这个问题的答案非常好,但它没有给出一个实际计算真实高斯滤波器内核的例子.答案给出了一个任意内核,并展示了如何使用该内核应用过滤器,而不是如何计算真实内核本身.我试图从头开始在C++或Matlab中实现高斯模糊,所以我需要知道如何从头开始计算内核.

如果有人能够使用任何小的示例图像矩阵计算真正的高斯滤波器内核,我将不胜感激.

c++ matlab gaussian blur filter

31
推荐指数
3
解决办法
8万
查看次数

简单内核无法在GRUB中启动

我正在从OSDev.org学习一些OS开发.我有一个内核,我正在尝试使用qemu在GRUB Legacy(0.97)中启动.但是,当我输入时kernel 200+9,我收到了消息

[Multiboot-elf, <0x100000:0x80:0x4008>(bad), entry=0x10000c]
Run Code Online (Sandbox Code Playgroud)

这是我所期望的,除了(坏)部分.如果我boot现在输入GRUB就会挂起.

我认为数字0x100000,0x44,0x4008分别代表.text段起始地址,.bss起始地址和.bss段大小.我认为这是因为objdump -h在内核映像上运行会产生以下结果:

kernel.bin:     file format elf32-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000044  00100000  00100000  00001000  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00004008  00100044  00100044  00001044  2**2
                  ALLOC
Run Code Online (Sandbox Code Playgroud)

所以你可以看到我提到的数字几乎匹配.问题是,而不是100044,.bss的开头只有44个.我认为这就是GRUB说错的原因.我的内存不足1 MB(低内存).但objdump告诉我我的部分超过了这个门槛,所以我不知道出了什么问题.无论如何,我会在下面粘贴我的代码,它相对较短.虽然我的问题可能是非常基本的,如果你以前做过OS开发,所以代码可能是无关紧要的.

;loader.s - contains the multiboot header for grub and calls the main kernel method

global loader                           ; making entry point visible to linker
global magic                            ; we will …
Run Code Online (Sandbox Code Playgroud)

assembly kernel grub qemu osdev

24
推荐指数
1
解决办法
3435
查看次数

Java程序在ObjectMapper.writeValue(System.out,responseData)之后终止 - 杰克逊图书馆

我正在使用Jackson库创建JSON对象,但是当我使用mapper.writeValue(System.out,responseData)函数时,程序终止.这是我的代码:

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class Test {

    public static void main(String[] args){
        new Test().test();
    }

    public void test() {
        ObjectMapper mapper = new ObjectMapper();
        Map<String, Object> responseData = new HashMap<String, Object>();

        responseData.put("id", 1);

        try {
            mapper.writeValue(System.out, responseData);
            System.out.println("done");
        } catch (JsonGenerationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block …
Run Code Online (Sandbox Code Playgroud)

java json terminate jackson

16
推荐指数
1
解决办法
8581
查看次数

预定的未来会导致内存泄漏吗?

我想我的Android动态壁纸中有内存泄漏.每当我旋转屏幕时,收集的内存垃圾量增加50kb并且不会再次下降.我认为它可能是由预定的未来引起的,所以我将提出一个场景,看看是否是这种情况.

假设您有一个具有以下成员的类(我们称之为Foo).

private ScheduledFuture<?> future;
private final ScheduledExecutorService scheduler = Executors
        .newSingleThreadScheduledExecutor();

private final Runnable runnable = new Runnable() {
    public void run() {
        // Do stuff
    }
};
Run Code Online (Sandbox Code Playgroud)

现在你设定了预定的未来

future = scheduler.scheduleAtFixedRate(runnable, delay, speed,
                TimeUnit.MILLISECONDS);
Run Code Online (Sandbox Code Playgroud)

将来会对runnable进行引用,而runnable可以保存对父Foo对象的引用.我不确定是不是这种情况,但这个事实是否意味着如果程序中没有任何内容引用Foo,垃圾收集器仍然无法收集它,因为有预定的未来?我不太擅长多线程,所以我不知道我显示的代码是否意味着计划任务的寿命比对象长,这意味着它不会被垃圾收集.

如果这种情况不会导致阻止Foo被垃圾收集,我只需要通过一个简单的解释告诉它.如果它确实阻止Foo被垃圾收集,那么我该如何解决?要做future.cancel(true); future = null;什么?这future = null部分是不必要的吗?

java multithreading android memory-leaks future

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