Android 和 CommaTokenizer

2024-02-01

我需要一个 Tokenizer(用于 AutoCompleteTextview),它可以执行以下操作:

  1. 当两个单词以空白字符分隔时,必须按原样进行识别
  2. 当用换行符分隔时,两个单词也必须被识别(按下“Enter”键)

1)正在工作,但我怎样才能完成2?

public class SpaceTokenizer implements Tokenizer {

@Override
public int findTokenStart(CharSequence text, int cursor) {
    int i = cursor; 
    while (i > 0 && (text.charAt(i - 1) != ' ')) {
        i--;
    }
    while (i < cursor && (text.charAt(i) == ' ' || text.charAt(i) == '\n')) {
        i++;
    }   
    return i;
}

@Override
public int findTokenEnd(CharSequence text, int cursor) {
    int i = cursor;
    int len = text.length();

    while (i < len) {
        if (text.charAt(i) == ' ' || text.charAt(i) == '\n') {
            return i;
        } else {
            i++;
        }
    }   
    return len;
}

@Override
public CharSequence terminateToken(CharSequence text) {
    int i = text.length();

    while (i > 0 && (text.charAt(i - 1) == ' ' || text.charAt(i - 1) == '\n')) {
        i--;
    }   
    if (i > 0 && (text.charAt(i - 1) == ' ' || text.charAt(i - 1) == '\n')) {
        return text;
    } else {
        if (text instanceof Spanned) {
            SpannableString sp = new SpannableString(text + " ");
            TextUtils.copySpansFrom((Spanned) text, 0, text.length(),
                    Object.class, sp, 0);
            return sp;
        } else {
            return text + " ";
        }
    }
}
}

您应该能够执行以下操作:text.charAt(i) == ' ' || text.charAt(i) == '\n' or i-1在适当情况下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 和 CommaTokenizer 的相关文章

随机推荐

  • C++ 重载模式:使用可变 lambda 进行调用解析

    考虑这个众所周知的 C 模式 template
  • 如何获取远程桌面客户端的IP地址?

    我正在尝试编写一个脚本来记录用户启动远程桌面以登录 Windows Server 的 Windows 客户端的 IP 地址 如何在服务器中捕获客户端的IP地址 所以 你忽略代理 在域中使用环境变量 CLIENTNAME 您可以将其解析回IP
  • wordpress:polylang 插件的媒体库问题

    我正在使用 Wordpress 开发一个网站 其中使用 Polylang 插件为多种不同语言制作内容 我使用 Polylang 来表示两种语言 荷兰语 主要 和英语 次要 当我在荷兰语页面上传图像时 一切都很好 但是当我创建一个英文页面 并
  • 使用 PIL 的 ImageDraw 模块

    我正在尝试使用 PIL 的 ImageDraw 模块进行单独的像素操作 下面的代码应该创建 Tkinter 画布小部件 然后打开一张图像 将一个像素的颜色更改为红色 然后将图像嵌入到画布小部件中 但是 它似乎不起作用 My Code imp
  • 如何在 Visual Studio 2012 中编辑 SSRS 2008R2 报告?

    我是一名报告编写者 能够在 Visual Studio 2008 中编辑 更新报告 我们使用 SSRS2008R2 我刚刚安装了 Visual Studio 2012 当我去转换我的报告项目时 它无法工作 因为我似乎缺少一个组件 本质上 项
  • Kafka 连接集群设置或启动连接工作线程

    我正在通过 kafka connect 我正在尝试了解这些概念 假设我已经设置了 kafka 集群 节点 k1 k2 和 k3 并且它正在运行 现在我想在不同节点 例如 c1 和 c2 中以分布式模式运行 kafka 连接工作程序 几个问题
  • 从未在数据库上显式调用 Close

    我有一个来自 sqlite 数据库的列表视图 我在几个不同的点调用 fillData 来更新列表视图 private void fillData readDatabase open Cursor itemsCursor readDataba
  • 在Android模拟器中,是否可以注意到振动效果?

    很简单的问题 是否可以注意到 Android 模拟器中的振动 我猜你想知道是否发生了振动 如果是这样 请查看模拟器中的 logcat 中的振动消息
  • Delphi 2010 中的 Indy IdHttp Post 问题

    我对 Indy IdHttp Post 方法有问题 使用 Delphi 2007 编译的函数 CallRpc 工作正常 但使用 Delphi 2010 编译的相同代码会引发异常 当我将 Delphi 2007 Indy TIdHttp 更改
  • 使用 Swift 3 停止预定定时器,即使定时器为零,定时器也会继续触发

    我们调用startTimer函数来启动一个定时器 当我们想要停止它时 我们调用 stopTimerTest 函数 但在调用 stopTimer 函数后 timerTestAction 继续触发 为了检查计时器条件 我们使用 print 并在
  • 通过引用设置接口参数

    我很难理解如何设置作为指针传递的接口值 我正在尝试完成以下任务 import fmt var Stuff map string interface func main var num int Stuff key 9001 get key n
  • 在asp.net mvc中一次更新多条记录

    我正在尝试使用制作一个网站asp net mvc 4 EF6我想一次更新多行 但由于某种原因 它不起作用 我收到这样的错误 System NullReferenceException 未将对象引用设置为对象的实例 这是我的代码 控制器 Ht
  • 展平 JavaScript 对象以作为查询字符串传递

    我有一个 javascript 对象 需要将其展平为字符串 以便可以作为查询字符串传递 我该怎么做 IE cost 12345 insertBy testUser 会成为cost 12345 insertBy testUser 我不能使用
  • 在 Scala / Spark 中将文件从一个文件夹移动到 HDFS 上的另一个文件夹

    我有两个路径 一个用于文件 一个用于文件夹 我想将文件移动到 HDFS 上的该文件夹中 我怎样才能在 Scala 中做到这一点 我也在用 Spark 如果相同的代码也适用于 Windows 路径 就像在 HDFS 上读取 写入文件一样 但不
  • 对 WTForms form.errors 字典进行排序

    forms errors 字典似乎是按字段名称排序的 而不是按 它们在表格本身中声明的顺序 E g class ProductForm Form code TextField Code validators Required descrip
  • 构建错误 -Ionic Cordova 在 Android 上失败 [重复]

    这个问题在这里已经有答案了 运行命令 ionic cordova build android stacktrace 时出现以下错误 generateDebugResources mergeDebugResources processDebu
  • 为什么 std::queue 不支持 clear() 函数?

    我有一个要求 对于一个函数 我将输入作为数字流 我的意思是 该函数在每次调用中都会继续使用单个数字进行调用 我在用std queue用于存储数字流 仅当满足某些条件时 我才需要处理一组收集的数字 如果不满足条件 我需要将所有元素放入队列中
  • 如何通过 Alchemy gcc 编译 ffmpeg?

    所以我创建了ffmpeg配置文件 使其成为纯C 平台无关 但只是理论上 所以我的配置很简单 0 6 1 0 6 3测试过 configure disable doc disable ffplay disable ffprobe disabl
  • CSS 网格布局最大内容在 Firefox 中无法按预期工作

    我使用 CSS 网格布局来创建页面的基本布局 并且我最初是在 Chrome 中工作的 我现在也在 Firefox 中对此进行了测试 并注意到一些我不理解的行为 并且似乎不符合我所理解的规范 我创建了一个显示该行为的简化示例 问题是搜索标题
  • Android 和 CommaTokenizer

    我需要一个 Tokenizer 用于 AutoCompleteTextview 它可以执行以下操作 当两个单词以空白字符分隔时 必须按原样进行识别 当用换行符分隔时 两个单词也必须被识别 按下 Enter 键 1 正在工作 但我怎样才能完成