小编chr*_*ina的帖子

Java Regex匹配除三个特定字符串之外的任何内容

鉴于此类Java Regex代码:

Pattern pattern = Pattern.compile("[^(bob)(alice)(kitty)]");
String s = "a";
Matcher matcher = pattern.matcher(s);

boolean bl = matcher.find();
System.out.println(bl);
Run Code Online (Sandbox Code Playgroud)

输出是false.为什么?正则表达式[^(bob)(alice)(kitty)]的任何东西匹配除bob,alicekitty.那么结果应该是真的吧?

java regex

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

HTML getElementsByClassName返回长度为0的HTMLCollection

我试图用来js document.getElementsByClassName定位一个html元素,它实际上是一个表的标题.

对于以下代码:

console.log(document.getElementsByClassName('gtableheader'));
Run Code Online (Sandbox Code Playgroud)

Firebug,我可以看到它登录a HTMLCollection,当我点击它时,它显示:

-> 0         tr.gtableheader
   length    1
Run Code Online (Sandbox Code Playgroud)

所以它确实找到了我想要的元素.

但是当我使用时:

console.log(document.getElementsByClassName('gtableheader').length);
Run Code Online (Sandbox Code Playgroud)

然后输出是0.那太奇怪了,有什么想法吗?

html javascript dom

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

Spark-Saving JavaRDD到Cassandra

http://www.datastax.com/dev/blog/accessing-cassandra-from-spark-in-java

上面的链接显示了JavaRDDcassandra这种方式保存到的方法:

import static com.datastax.spark.connector.CassandraJavaUtil.*;

JavaRDD<Product> productsRDD = sc.parallelize(products);
javaFunctions(productsRDD, Product.class).saveToCassandra("java_api", "products");
Run Code Online (Sandbox Code Playgroud)

com.datastax.spark.connector.CassandraJavaUtil.*似乎已经弃用了.更新的API应为:

import static com.datastax.spark.connector.japi.CassandraJavaUtil.*;
Run Code Online (Sandbox Code Playgroud)

有人能告诉我一些代码来存储JavaRDDCassandra使用上述更新API?

cassandra apache-spark rdd

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

d3.max没有得到正确的值

d3.js用来渲染一些数据,数据集是一个这样的csv文件bar-data.csv:

date,value,duration
www.sina.com,53,100
www.baidu.com,165,2000
www.qq.com,269,690
www.youku.com,421,224
www.facebook.com,405,345
www.apple.com,376,777
www.cnn.com,359,298
www.cctv.com,433,333
www.google.com,455,500
www.boston.com,670,274
Run Code Online (Sandbox Code Playgroud)

但是,当我使用以下代码来获取maximum持续时间时,返回值777不是2000(应该是数据集中的最大值).

d3.csv("bar-data.csv", function(error, data) {

data.forEach(function(d) {
    d.date = d.date;
    d.value = d.value;
});

var maximum = d3.min(data, function(d) { return d.duration; });
alert ("max is " + maximum);
Run Code Online (Sandbox Code Playgroud)

如果您更改2000999,您将获得999最大值.它似乎只用相同数量的数字给出答案.

这是什么问题?

javascript max d3.js

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

跟踪 HTML div 内的滚动位置

我正在用来google visualization table创建一个html表,它使The header row remains fixed as the user scrolls.

我得到了这样的工作:http://jsfiddle.net/RjHMH/114/

我面临的问题是,当我单击 arow展开表格时,它实际上重新绘制了表格,因此scroll bar始终位于表格的顶部。无论如何,我可以在单击时跟踪滚动条的当前位置,并在重绘表格时设置回该值吗?

如果它是scroll bar其中的一个DOM,我可以使用:

var pos = $('body').scrollTop();
table.draw(view, options);
window.scrollTo(0, pos);
Run Code Online (Sandbox Code Playgroud)

那么如何跟踪 a 内的滚动条呢div

html javascript css jquery google-visualization

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

Spark - 使用JavaPairRDD按值排序

与工作apache spark使用Java.我得到了一个JavaPairRDD<String,Long>,我想按其值对这个数据集进行排序.但是,似乎只有sortByKey方法.我怎么能按Long类型的值对它进行排序?

sorting apache-spark

4
推荐指数
2
解决办法
6851
查看次数

应用程序在Android Studio中安装时挂起

通常我构建一个应用程序Android Studio来测试手机上的应用程序.但是当我点击它时会发生这种情况Run app

Waiting for device.
Target device: motorola-nexus_6-ZX1G227B86
Uploading file
    local path: F:\HeadFirstAndroid\MateClient\app\build\outputs\apk\app-debug.apk
    remote path: /data/local/tmp/com.diyu.org.mateclient
Installing com.diyu.org.mateclient
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.diyu.org.mateclient"
Run Code Online (Sandbox Code Playgroud)

似乎该过程停留pm install在我的手机上并没有安装任何应用程序.有什么问题?

和其他项目行为相同,挂在安装上.

android android-studio

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

在RadioButton中使用图像而不是文本

检查图像

检查文字

Android,我想使用RadioButton,但我不想检查纯文本.如何在第一张图像而不是第二张图像中显示?使用RadioGroupRadioButton.

android radio-button

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

线程永远不会停止在Java中

我读Effective Java第10章:并发; 第66项:同步对共享可变数据的访问,有一些代码如下:

public class StopThread {
private static boolean stopRequested;
public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    System.out.println(stopRequested);
    Thread backgroundThread = new Thread(new Runnable(){

        @Override
        public void run() {
            // TODO Auto-generated method stub
            int i = 0;
            while (!stopRequested){
                i++;
            }

            System.out.println("done");
        }

    });
    backgroundThread.start();
    TimeUnit.SECONDS.sleep(1);
    stopRequested = true;
}

}
Run Code Online (Sandbox Code Playgroud)

首先,我认为线程应运行一秒然后停止,因为之后stopRequested设置为true.但是,该计划永远不会停止.它永远不会打印done.作者说

while (!stopRequested)
    i++;
Run Code Online (Sandbox Code Playgroud)

将变成这样:

if (!stopRequested)
     while(true)
         i++;
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

我发现的另一件事是,如果我将程序更改为: …

java multithreading

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

Hashtable的价值不会增加

以下Java代码:

public class TestCSVDataToMap {

    public static Hashtable<String, Integer> testTable = new Hashtable<>();

    public static void main (String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader("test.csv"));
        String line;
        while ((line = reader.readLine()) != null) {
            String symbol = "0";
            if(testTable.contains(symbol)) {
                int value = testTable.get(symbol);
                value++;
                testTable.put(symbol, value);
            }
            else {
                System.out.println("dash!");
                testTable.put(symbol, 1);
            }
        }
        System.out.println(testTable);
    }
}
Run Code Online (Sandbox Code Playgroud)

有输出:

dash!
dash!
dash!
dash!
{0=1}
Run Code Online (Sandbox Code Playgroud)

为什么在解析.csv文件时密钥'0'的值没有增长?在TestTable的(一个Hashtable),它被初始化为(0,1),并且该值应保持增长,由于符号被作为"0"的一个关键总是检测.

java hashtable

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