jjzjj

CharBuffer

全部标签

java - CharBuffer.put() 没有工作

我尝试使用CharBuffer.put()函数将一些字符串放入CharBuffer但缓冲区留空。我的代码:CharBuffercharBuf=CharBuffer.allocate(1000);for(inti=0;i我尝试在allocate(1000)之后使用clear()或rewind()但这并没有改变结果。 最佳答案 添加对rewind()的调用就在循环之后。 关于java-CharBuffer.put()没有工作,我们在StackOverflow上找到一个类似的问题:

java - 我想有效地将​​正则表达式应用于整个文件

我有一个复杂的正则表达式,我想将它与整个大文件的内容进行匹配。主要关注的是效率,因为文件确实非常大,很可能会耗尽内存。有没有一种方法可以在通过正则表达式匹配器抽取内容时以某种方式“缓冲”内容? 最佳答案 是的,Pattern.match()将采用CharSequence。如果您的输入已经在一个字符集中,该字符集正好使用2个字节来表示没有任何“序言”的字符,您只需要:ByteBufferbb=...;//acquirememorymappedbytebufferCharBuffercb=bb.asCharBuffer();//geta

java - 将子字符串的 jdk6 更改为 jdk7 行为的解决方法

直到jdk7u6的子串方法waslightningfast因为它只是在现有字符串中使用指针——因此不需要内存复制。我在实现解析器时广泛使用了该功能。考虑到自该关键性能特征被移除以来的时间长度,必须有一些润滑良好的替代品。注意:理论上我可以返回并从jdk6复制实现。但是IIRC它在整个String类中被包裹得很重——即不容易提取。那么这样的实现是否存在-例如在高性能jvm解析器库之一中? 最佳答案 您可以使用CharBuffer执行您需要的操作,它实现了CharSequence接口(interface)。参见,特别是CharBuffe

Java:不带 toString 的 StringBuffer 到 byte[]

标题说明了一切。有什么方法可以在不在中间使用String的情况下从StringBuilder转换为byte[]?问题是我正在管理非常大的字符串(数百万个字符),然后我有一个循环在最后添加一个char并获得byte[]。将StringBuffer转换为String的过程使得这个循环非常非常非常慢。有什么办法可以实现吗?提前致谢! 最佳答案 正如许多人已经建议的那样,您可以使用CharBuffer类,但分配一个新的CharBuffer只会让您的问题变得更糟。相反,您可以直接将StringBuilder包装在CharBuffer中,因为S

android - Android 的 NSNonLossyASCIIStringEncoding 等价物

我必须将一些聊天代码从iOS移植到Android。在将聊天消息发送到套接字之前,iOS代码使用NSNonLossyASCIIStringEncoding类作为NSString::dataUsingEncoding的参数。在Android中你会怎么做?关于相反解码的相同问题。如果不这样做,换行符就会在另一台手机收到的消息中消失。iOS上的代码:NSData*data1=[myStringTosenddataUsingEncoding:NSNonLossyASCIIStringEncoding];NSString*goodValue=[[[NSStringalloc]initWithDat

java - CharBuffer 与 char[]

有什么理由更喜欢CharBuffer到char[]在下面:CharBufferbuf=CharBuffer.allocate(DEFAULT_BUFFER_SIZE);while(in.read(buf)>=0){out.append(buf.flip());buf.clear();}对比char[]buf=newchar[DEFAULT_BUFFER_SIZE];intn;while((n=in.read(buf))>=0){out.write(buf,0,n);}(其中in是Reader和Writer中的out)? 最佳答案 不

java - CharBuffer 与 char[]

有什么理由更喜欢CharBuffer到char[]在下面:CharBufferbuf=CharBuffer.allocate(DEFAULT_BUFFER_SIZE);while(in.read(buf)>=0){out.append(buf.flip());buf.clear();}对比char[]buf=newchar[DEFAULT_BUFFER_SIZE];intn;while((n=in.read(buf))>=0){out.write(buf,0,n);}(其中in是Reader和Writer中的out)? 最佳答案 不