Tag: stringtokenizer

Java中StringTokenizer类与String.split方法的性能

在我的软件中,我需要将string拆分成单词。 目前我有超过1900万个文件,每个文件超过30个字。 以下两种方式中的哪一种是最好的方法(就性能而言)? StringTokenizer sTokenize = new StringTokenizer(s," "); while (sTokenize.hasMoreTokens()) { 要么 String[] splitS = s.split(" "); for(int i =0; i < splitS.length; i++)

Elasticsearch:查找子串匹配

我想要执行确切的单词匹配和部分单词/子串匹配。 例如,如果我search“男士razor”,那么我应该能够在结果中find“男士razor”。 但是,如果我search“en的razor”,那么我也应该能够find“男士razor”的结果。 我使用以下设置和映射: 索引设置: PUT /my_index { "settings": { "number_of_shards": 1, "analysis": { "filter": { "autocomplete_filter": { "type": "edge_ngram", "min_gram": 1, "max_gram": 20 } }, "analyzer": { "autocomplete": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "autocomplete_filter" ] } } } } } 映射: PUT /my_index/my_type/_mapping { "my_type": { "properties": { "name": { "type": […]

由CursorLoader支持的AutoCompleteTextView

所以我无法扩展MultiAutoCompleteTextView并使用CursorLoader备份,同时使用自定义Tokenizer 。 这个问题会随着mAdapter.setCursorToStringConverter(); 呼叫。 将Cursor作为参数的convertToString()方法在首次调用此方法时具有有效且未closures的游标。 但是,随后的调用会导致null游标或closures的游标。 我猜这与LoaderManager如何pipe理CursorLoader 。 如果我注释了setCursorToStringConverter()方法,那么我会看到一个基于我input到这个视图中的文本的可用选项列表。 但是,由于没有实现convertToString()方法,因此自定义Tokenizer的terminateToken()方法没有收到我想要的string,而是游标对象的代表string,因为游标不是用于在生成的查询中获取所需列的当前string值。 有没有人能够实现三个类的组合( CursorLoader/LoaderManger , MultiAutoCompleteTextView和Tokenizer )? 我正在朝着这个正确的方向前进,还是这根本不可能? 我已经能够实现由MultiAutoCompleteTextView支持的自定义SimpleCursorAdapter以及自定义Tokenizer 。 我只是想知道是否可以实现这个使用CursorLoader而不是,因为严格模式抱怨MultiAutoCompleteTextView的游标没有被显式closures。 任何帮助将不胜感激。 public class CustomMultiAutoCompleteTextView extends MultiAutoCompleteTextView implements LoaderManager.LoaderCallbacks<Cursor> { private final String DEBUG_TAG = getClass().getSimpleName().toString(); private Messenger2 mContext; private RecipientsCursorAdapter mAdapter; private ContentResolver mContentResolver; private final char delimiter = ' '; private CustomMultiAutoCompleteTextView mView; // If […]

为什么不推荐使用StringTokenizer?

Java文档似乎没有提及StringTokenizer废弃,但是我一直听到它很久以前被弃用的情况。 是不是因为它有错误/错误,或者是String.split()使用? 我有一些使用StringTokenizer代码,我想知道是否应该重新考虑重构它使用String.split() ,或弃用纯粹是为了方便,我的代码是安全的。