首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在字节数组中找到特定的字符?

在字节数组中找到特定的字符?
EN

Stack Overflow用户
提问于 2013-01-09 13:15:19
回答 2查看 5.3K关注 0票数 1

我正在使用android中的一个库连接到一个终端模拟器,这个库连接到一个串行设备(一个交换机),并向我显示发送/接收的数据。

然而,我只是反复发送字节数组,所以我不知道开关处于什么状态,它是处于启用更多还是配置模式等。这可能会导致我在错误的模式下输入命令,它们将无法工作。然后,交换机处于不可恢复模式,因为我发送了错误的命令,并且无法删除该命令或转到新行。我现在要解决的问题是,我不知道交换机处于什么模式。我知道在我发送一条命令后,可能会有三种不同的返回提示:

代码语言:javascript
运行
AI代码解释
复制
switch>
switch#
switch(config)#

所以我在想,如果我读了收到的最后两个字符,我就能知道我处于哪种模式。h>、h#和)#

我在这个方法中得到了数据,只要接收到数据,就会运行:

代码语言:javascript
运行
AI代码解释
复制
public void onDataReceived(int id, byte[] data) 
{

    String str = new String(data);
    ((MyBAIsWrapper) bis).renew(data);

    mSession.write(str);
    mSession.notifyUpdate();
    viewHandler.post(updateView);
}

最好的方法是以某种方式搜索字节数组,或者将其转换为字符串,然后在字符串中搜索h>、h#和)#,然后根据返回的值设置全局变量?也许可以从最后向后搜索?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-09 13:21:00

我将搜索byte[]并避免转换为String的开销。

如果从最后开始搜索会更有效率,这取决于您获得的数据。我不能通过你在问题中张贴的小例子来判断这一点。

如果您只需要查看最后两个字符:

代码语言:javascript
运行
AI代码解释
复制
if(data[data.length-2]=='h' && data[data.length-1]=='>') // "h>"


if(data[data.length-2]=='h' && data[data.length-1]=='#') // "h#"

或者,如果不是那么简单,使用循环来迭代数组。

附注:我假设上面的代码采用ASCII编码

票数 4
EN

Stack Overflow用户

发布于 2013-01-09 13:20:50

你的意思是?

代码语言:javascript
运行
AI代码解释
复制
if(str.endsWith("h>") || str.endsWith("h#") || str.endsWith(")#"))

或者更简单

代码语言:javascript
运行
AI代码解释
复制
if(str.equals("switch>") || str.equals("switch#") || str.equals("switch(context)#"))

或使用正则表达式

代码语言:javascript
运行
AI代码解释
复制
final Pattern switched = Pattern.compile("switch(>|#|\\(\\w+\\)#)");

if(str.matcher(switched).matches())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14236029

复制
相关文章
在字符串中删除特定的字符
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 首先我们考虑如何在字符串中删除一个字符。由于字符串的内存分配方式是连续分配的。我们从字符串当中删除一个字符,需要把后面所有的字符往前移动一个字节的位置。但如果每次删除都需要移动字符串后面的字符的话,对于一个长度为n的字符串而言,删除一个字符的时间复杂度为O(n)。而对于本题而言,有可能要删除的字符的个数是n,因此该
猿人谷
2018/01/17
9.5K0
java字符串的字节数组_Java字节数组到字符串到字节数组
我正在尝试将byte []转换为字符串,将byte []的字符串表示形式转换为byte []的转换...我将byte []转换为要发送的字符串,然后我期望我的Web服务(用python编写)将数据直接回显给客户端。
用户7886150
2021/04/29
5.3K0
漫画:如何在数组中找到和为 “特定值” 的两个数?
什么意思呢?我们来举个例子,给定下面这样一个整型数组(题目假定数组不存在重复元素):
小灰
2020/10/09
3.2K0
漫画:如何在数组中找到和为 “特定值” 的两个数?
漫画:如何在数组中找到和为 “特定值” 的三个数?
前一段时间,我们介绍了LeetCode上面的一个经典算法题【两数之和问题】。 这一次,我们把问题做一下扩展,尝试在数组中找到和为“特定值”的三个数。 题目的具体要求是什么呢?给定下面这样一个整型数组: 我们随意选择一个特定值,比如13,要求找出三数之和等于13的全部组合。 由于5+6+2=13, 5+1+7=13,3+9+1=13,所以最终的输出结果如下: 【5, 6,2】 【5, 1,7】 【3, 9,1】 小灰的思路,是把原本的“三数之和问题”,转化成求n次“两数之和问题”。 我们以上
腾讯NEXT学位
2020/10/14
2.5K0
字节数组转化为字符串_数组字符串
如果用的是fastjson 则导包为 import com.alibaba.fastjson.JSONObject
全栈程序员站长
2022/11/16
1.3K0
字节数组转化为字符串_数组字符串
但是,在通过移动数组的上升周期中找到指定元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117323.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
4130
COleVariant在多字节字符集下的坑
看到没?无论你传ansi或unicode的源字符串进去,最终都被作为unicode存储,在取出来的时候,当然取得的是unicode的字符串,当使用CStringA str = V_BSTRT(&var);去接时,前面的“123”能拿到的,当后面的中文被去掉了。
全栈程序员站长
2022/09/09
3470
Python 字符串与字节数组转换
整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: int('0x10', 16) ==> 16 类似的还有oct(), bin() 字符串转整数: 10进制字符串: int('10') ==> 10 16进制字符串: int('10', 16) ==> 16 16进制字符串: int('0x10', 16) ==> 16 字节串转整数: 转义为short型整数: struct.unpack('<hh', bytes(b'\x01\x00\
王瑞MVP
2022/12/28
1.1K0
字节和字符
位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。
泰斗贤若如
2019/10/13
2.4K0
Python字符串中删除特定字符的方法
这篇文章主要介绍了Python字符串中删除特定字符的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 分析
全栈程序员站长
2022/06/28
6.8K0
Python字符串中删除特定字符的方法
在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
  今天在使用Tomcat8部署完成项目做测试的时候,发现有的接口会报错400,后端提示在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
彼岸舞
2020/11/05
14.4K6
在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
Java 给定字符串中找到数字
public myTest{ public static StringBuilder hhhh(String value) { StringBuilder sb = new StringBuilder(); String strIndex = ""; // String regex = "\\d*"; 可以用String 但最终结果只有后面的数字 例子中的只能显示222222222,因为会被替代 Pattern pattern = Pa
桑鱼
2020/04/24
3880
Java 给定字符串中找到数字
Excel公式练习50: 在公式中用特定构造代替常量数组
导语:继续研究来自于excelxor.com的案例。建议结合本文阅读原文,会了解更多的细节,会有更大的收获。
fanjy
2020/03/17
5570
刷题打卡:在两个长度相等的排序数组中找到上中位数
给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。要求时间复杂度O(logN),空间复杂度O(1)
帅地
2019/04/09
1.2K0
刷题打卡:在两个长度相等的排序数组中找到上中位数
字符数组反转_字符数组的初始化
关于字符串的反转,倒是很简单,但是编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
全栈程序员站长
2022/08/18
1.2K0
练习12—统计特定字符个数
题目 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。 解题步骤 (1)定义变量接收输入; (2)定义特定变量; (3)循环计算; (4)多分支结构判断; (5)输出结果; C语言 #include <stdio.h> int main() { char input; int word = 0, num = 0, blank = 0, other = 0; printf("please enter the character and press e
攻城狮杰森
2022/06/03
8410
java字节和字符的区别
Java采用unicode来表示字符,java中的一个char是2个字节,一个中文或英文字符的unicode编码都占2个字节,但如果采用其他编码方式,一个字符占用的字节数则各不相同。
说故事的五公子
2019/09/11
1.1K0
Oracle字符与字节的整理
平时工作中,偶尔会有关于Oracle字符与字节的困惑,今天闲暇之余,特意整理一下。
星哥玩云
2022/08/18
1.1K0
Oracle字符与字节的整理
字节流与字符流,字节流和字符流的使用哪个多?
而上一篇的java 读写操作大文件 BufferedReader和RandomAccessFile
ydymz
2018/12/27
9580
字节流、字符流
字节输出流_OutputStream类&FileOutputStream类介绍
全栈程序员站长
2022/06/29
5550
字节流、字符流

相似问题

在文件中找到特定字节,然后在Lua中读取到特定字节

27

是否可以在.NET程序集中找到特定的字节数组?

20

在特定字节上拆分字节数组

22

在golang字符串数组中打印特定字节的值

22

如何在字节数组中找到字符串的行号?

27
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档