小编rif*_*aff的帖子

什么是sscanf的Java等价物,用于使用已知模式解析字符串中的值?

所以我来自C背景(原来最初,虽然我已经有近5年没用过那种语言了)而且我正在尝试用Java中的字符串解析一些值.在CI中将使用sscanf.在Java中,人们告诉我"使用Scanner或StringTokenizer",但我看不出如何使用它们来实现我的目的.

我的输入字符串看起来像"17-MAR-11 15.52.25.000000000".CI会做类似的事情:

sscanf(thestring, "%d-%s-%d %d.%d.%d.%d", day, month, year, hour, min, sec, fracpart);
Run Code Online (Sandbox Code Playgroud)

但在Java中,我所能做的就是:

scanner.nextInt();
Run Code Online (Sandbox Code Playgroud)

这不允许我检查模式,对于"MAR"我最终不得不做以下事情:

str.substring(3,6);
Run Code Online (Sandbox Code Playgroud)

可怕!当然有更好的方法吗?

java scanf

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

apache spark MLLib:如何为字符串功能构建标记点?

我正在尝试使用Spark的MLLib构建一个NaiveBayes分类器,它将一组文档作为输入.

我想把一些东西作为特征(即作者,显式标签,隐式关键字,类别),但看文档似乎LabeledPoint只包含双打,即它看起来像LabeledPoint[Double, List[Pair[Double,Double]].

相反,我从其余代码输出的内容就像是LabeledPoint[Double, List[Pair[String,Double]].

我可以编造自己的转换,但看起来很奇怪.我怎么用MLLib来处理这个问题?

我相信答案是在HashingTF课堂上(即散列功能),但我不明白它是如何工作的,它似乎需要某种容量值,但我的关键词和主题列表实际上是无限的(或更好,未知一开始).

java machine-learning feature-selection apache-spark apache-spark-mllib

17
推荐指数
1
解决办法
3738
查看次数

使用node.js"request"模块进行响应编码

我试图从Bing搜索API获取数据,并且因为现有的库似乎基于旧的已停止的API,但我尝试自己使用request库,这似乎是最常见的库.我的代码看起来像

var SKEY           =  "myKey...." , 
    ServiceRootURL =  'https://api.datamarket.azure.com/Bing/Search/v1/Composite';

function getBingData(query, top, skip, cb) {
    var params = {
         Sources: "'web'", 
         Query: "'"+query+"'", 
         '$format': "JSON", 
         '$top': top, '$skip': skip
       },
       req = request.get(ServiceRootURL).auth(SKEY, SKEY, false).qs(params);
    request(req, cb)
}

getBingData("bookline.hu", 50, 0, someCallbackWhichParsesTheBody)
Run Code Online (Sandbox Code Playgroud)

Bing返回一些JSON,我有时可以使用它,如果响应主体包含大量非ASCII字符JSON.parse,则会抱怨字符串格式错误.我尝试切换到ATOM内容类型,但没有区别,xml无效.检查request()回调中可用的响应主体实际上显示错误的代码.

所以我用一些python代码尝试了相同的请求,这似乎一直很好.以供参考:

r = requests.get(
       'https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27web%27&Query=%27sexy%20cosplay%20girls%27&$format=json', 
        auth=HTTPBasicAuth(SKEY,SKEY))
stuffWithResponse(r.json())
Run Code Online (Sandbox Code Playgroud)

我无法用较小的响应重现问题(例如限制结果的数量)并且无法识别导致问题的单个结果(通过加强偏移).我的印象是,响应以块的形式读取,以某种方式进行转码并以错误的方式重新组装,这意味着如果某些多字节字符被拆分,则json/atom数据将变为无效,这发生在较大的响应但不是较小的响应.

作为节点的新手,我不确定是否有我应该做的事情(在某处设置编码?Bing返回UTF-8,所以这似乎不需要).

任何人都知道发生了什么事吗?

FWIW,我在OSX 10.8上,节点是通过macports安装的v0.8.20,请求是通过npm安装的v2.14.0.

http request character-encoding bing node.js

7
推荐指数
1
解决办法
9522
查看次数

太阳黑子:如何对具有不同值的多个字段进行全文查询?

我想用sunspot重现以下原始solr查询

q=exact_term_text:foo OR term_textv:foo* OR alternate_text:bar*
Run Code Online (Sandbox Code Playgroud)

但我无法通过标准的太阳黑子界面了解这是否可行,因为它看起来像:

  1. fulltext方法似乎不接受多个text/search_fields参数
  2. 我不知道作为第一个传递的参数是什么fulltext,好像我传递了一个"foo"或者"bar"结果不匹配
  3. 如果我通过一个空的论点我得到一个 q=*:*
  4. 范围过滤器(例如with(:term).starting_with('foo*')(顾名思义)应用为过滤查询,因此不参与评分.

似乎可以手工组成字符串(或可能使用adjust_solr_params),但这似乎是hackish.有更好的解决方案吗?

ruby solr full-text-search ruby-on-rails sunspot

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

Akka 流:使用 OverflowStrategy.fail() 模拟失败的流

我是 Akka 和 Akka 流的新手。我创建了一个虚拟流,我希望它以异常结束,因为我的 map() 函数非常慢,我将缓冲区设置为1.

所以我的问题分为两部分:

  1. 为什么这段代码可以正常工作而不会失败?
  2. 如何模拟溢出?(用于学习目的)
    import akka.NotUsed;
    import akka.actor.ActorSystem;
    import akka.stream.OverflowStrategy;
    import akka.stream.javadsl.Sink;
    import akka.stream.javadsl.Source;

    public class Application {

        public static void main(String[] args) {
            final ActorSystem system = ActorSystem.create("reactive-test");
            Source<Integer, NotUsed> source =
                    Source.range(0, 10000000)
                    .buffer(1, OverflowStrategy.fail())
                    .map(Application::doubleInt);      
            source.runWith(Sink.foreach(a -> System.out.println(a)), system);
        }

        private static Integer doubleInt(int i) {
            try {
                Thread.sleep(2_000);
            } catch (Exception e) {
                System.out.println(e);
            }
            return 2 * i;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java akka akka-stream

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