我有一个方法,它接受一个字符串作为输入,并从中取出所有空格和换行符.为了实现这一点,我使用了java库中的以下方法:
public String clean(String s) {
return s.replaceAll(System.lineSeparator(),"").replaceAll(" ","");
}
Run Code Online (Sandbox Code Playgroud)
这在Linux下工作正常,但是当涉及到Windows时,它无法删除行分隔符,因为字符串包含它们.
有什么我想念的吗?我知道在基于Unix的系统中,换行符是/ n,我不知道它在Windows中可能是什么,但正如java文档所说,System.lineSeparator()方法应该提供与平台无关的行分隔符.
有没有办法在Haskell中从控制台读取整数?我要的东西非常像C++的cin或Java的Scanner.nextInt().
我的意思是,鉴于此输入:
1 2 3
2 3
4 25 12 7
1
Run Code Online (Sandbox Code Playgroud)
我应该能够全部阅读它们,而不是同时阅读它们(也许可以阅读其中的4个,进行一些计算,然后阅读其余部分)忽略它们处于不同行中的事实.
假设我创建了一个抽象类Entity,然后创建了它的多个子类,每个子类都有其参数和功能,但是由于Entity共享一个公共接口.到目前为止,这是面向对象编程中最常见的例子.
当我创建一个Entity值向量并告诉它为N个元素保留(确保容量而不调整大小)时,内部会发生什么.如果尺寸可以是任何值,它如何知道尺寸?公共部分是存储在向量中,还是指向子类特定部分的指针?如果是这样,那么指针最终在堆中声明了什么?这对缓存性能非常不利.
最后,这与POD和非POD类型有什么关系吗?
我有一个C++头文件,在公共部分声明了枚举:
enum Button {A, B, C, D};
Run Code Online (Sandbox Code Playgroud)
和一个地图,使用该枚举作为私有部分中的模板参数:
map<Button, int> bindings;
Run Code Online (Sandbox Code Playgroud)
如果不是因为我喜欢在公共部分之前定义私有部分,那么这将完美地工作,因此编译器不会将Button识别为符号.我已经在地图声明工作之前检查并移动了Button声明.
这对我来说似乎是一个巨大的限制,有没有我可以使用的解决方法,而不必翻转我的头文件的公共和私人部分?