Java中split使用时遇到的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/itmyhome/article/details/79216498

项目中是这样使用split()的

// onestr 为 PRO:=:2018-01
// 按 “:” 分隔为3部分
String[] valueT = onestr.split(":"); 

之前一直没事,直到日期值变为了 2018-01-31 11:14:55 就出现了问题,被分隔成了

PRO
=
2018-01-31 11
14
55

这不是我要的结果,想要的是个完整的日期值,查看API文档发现split()还有个重载的方法

// limit 参数控制模式应用的次数,因此影响所得数组的长度
public String[] split(String regex,  int limit)

在得知数组长度的情况下,设置limit即可

作者:itmyhome

阅读更多
换一批

使用时遇到问题

10-30

各位大侠rn我在使用以下代码模拟键盘动作时rn产生了一些问题rn比如我要模拟 rn循环输入rnA B C Drn4个键.rnrn正确结果: ABCDABCDABCD...rn当前结果可能是:a00cd00070bdabbd...rn不知道是为什么呢?rnrn我的目的是为了在使用DXINPUT的游戏中模拟按键rnrn分少请勿怪!rnrn[code=C/C++]rn#includern#includern#includernusing namespace std;rnrn#include"WinIo.h"rnrn#define VK_A 0x41rn#define KBC_KEY_CMD 0x64 //键盘命令端口rn#define KBC_KEY_DATA 0x60rnrn//键盘数据端口rnvoid KBCWait4IBE()rnrn DWORD dwRegVal = 0;rn dorn GetPortVal(0x64, &dwRegVal, 1);rn while(dwRegVal & 0x00000001);rnrnrnvoid MyKeyDownEx(long vKeyCoad) //模拟扩展键按下,参数vKeyCoad是扩展键的虚拟码rnrn long btScancode=MapVirtualKey(vKeyCoad,0);rn KBCWait4IBE(); //等待键盘缓冲区为空rn SetPortVal(KBC_KEY_CMD,0xD2,1); //发送键盘写入命令rn KBCWait4IBE();rn SetPortVal(KBC_KEY_DATA,0xE0,1); //写入扩展键标志信息rn KBCWait4IBE(); //等待键盘缓冲区为空rn SetPortVal(KBC_KEY_CMD,0xD2,1); //发送键盘写入命令rn KBCWait4IBE();rn SetPortVal(KBC_KEY_DATA,btScancode,1); //写入按键信息,按下键rnrnrnvoid MyKeyUpEx(long vKeyCoad)//模拟扩展键弹起rnrn long btScancode = MapVirtualKey(vKeyCoad,0);rn KBCWait4IBE(); //等待键盘缓冲区为空rn SetPortVal(KBC_KEY_CMD,0xD2,1); //发送键盘写入命令rn KBCWait4IBE();rn SetPortVal(KBC_KEY_DATA,0xE0,1); //写入扩展键标志信息rn KBCWait4IBE(); //等待键盘缓冲区为空rn SetPortVal(KBC_KEY_CMD,0xD2,1); //发送键盘写入命令rn KBCWait4IBE();rn SetPortVal(KBC_KEY_DATA,(btScancode|0x80),1); //写入按键信息,释放键rnrnrnvoid MyKeyDown(long vKeyCoad)rnrn long byScancode = MapVirtualKey(vKeyCoad,0);rn KBCWait4IBE(); //等待键盘缓冲区为空rn if(SetPortVal(KBC_KEY_CMD,0xD2,1)==false)rn cout<<"发送键盘写入命令失败!"<

没有更多推荐了,返回首页