如何为Java输出着色?
例如在C语言和其他语言中,我可以使用ANSI-escape \033[0m来执行此操作.但在Java中它不起作用.
public static void main(String[] x) {
System.out.println("\033[0m BLABLA \033[0m\n");
}
Run Code Online (Sandbox Code Playgroud) 我无法在Strings 的向量上找到"join"运算符的Rust等价物.我有一个Vec<String>,我想加入他们作为一个单身String:
let string_list = vec!["Foo".to_string(),"Bar".to_string()];
let joined = something::join(string_list,"-");
assert_eq!("Foo-Bar", joined);
Run Code Online (Sandbox Code Playgroud) 我有这个代码:
use std::fs::File;
use std::io::{BufRead, BufReader};
fn load_file() -> Vec<String> {
let file = BufReader::new(File::open("foo.txt").unwrap());
file.lines().map(|x| x.unwrap()).collect();
}
fn main() {
let data = load_file();
println!("DATA: {}", data[0]);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,我收到此错误:
error[E0283]: type annotations required: cannot resolve `_: std::iter::FromIterator<std::string::String>`
--> src/main.rs:6:38
|
6 | file.lines().map(|x| x.unwrap()).collect();
| ^^^^^^^
Run Code Online (Sandbox Code Playgroud)
事实上,如果我load_file以这种方式更改函数,代码将顺利编译:
fn load_file() -> Vec<String> {
let file = BufReader::new(File::open("foo.txt").unwrap());
let lines: Vec<String> = file.lines().map(|x| x.unwrap()).collect();
return lines;
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案不够"生锈",因为不鼓励使用返回结束函数.
有没有办法将类型注释直接放入file.lines().map(|x| x.unwrap()).collect();语句中?
我有一个服务器线程与此代码:
public void run() {
try {
ServerSocket server;
EneaLog.printLog("Server is running.");
server = new ServerSocket(this.portnumber);
while (true) {
new EneaServerConnection(server.accept(), this.project,stopped).start();
if (stopped) {
EneaLog.printLog("Server safe-shutdown completed.");
EneaLog.printLog("Hi!");
server.close();
return;
}
}
} catch (IOException ex) {
Logger.getLogger(EneaServer.class.getName()).log(Level.SEVERE, null, ex);
project.getExceptionHandler().handler(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
和这样的关机方法:
public void shutdown() {
EneaLog.printLog("Server shutdown NOW!");
stopped = true;
}
Run Code Online (Sandbox Code Playgroud)
我希望关闭可以解除在server.accept()上等待的线程,否则我必须在服务器关闭之前等待连接.
我不能在shutdown()中执行server.close()因为我必须向注册客户端发信号通知服务器正在关闭.
有任何想法吗?
同
Runtime.getRuntime().availableProcessors();
Run Code Online (Sandbox Code Playgroud)
我可以获得可用的CPU数量.
但是我怎样才能获得他们的时钟频率?
我正在寻找一种独立于os的解决方案.
我正在使用遗传算法"学习"草稿/跳棋AI的最佳参数.该参数存储在double的向量中.
[x1 x2 x3 x4 x5 x6 x7 x8 x9]
Run Code Online (Sandbox Code Playgroud)
实际上我使用两种简单的方法进行交叉:一点交叉和两点交叉.不幸的是,在我看来,这种方法还不够好.
例如,如果我有一个遗传池:
[10 20 1]
[30 10 9]
[100 1 10]
Run Code Online (Sandbox Code Playgroud)
如果x1值的理论最优值为50,我就无法通过交叉找到它.我唯一的希望是产生一个x1 = 50的突变,足以传递给下一代.
那么,有一种更好的方法可以使用数组来执行交叉吗?
我正在尝试使用基于XML的协议用Java编写客户端服务器应用程序。但是我有一个大问题!
参见客户端代码的这一部分:
InputStream incoming = skt.getInputStream(); //I get Stream from Socket.
OutputStream out = skt.getOutputStream();
[...]
XMLSerializer serializer = new XMLSerializer();
//This create an XML document.
tosend = WUTPClientWriter.createMessage100(projectid, cpuclock, cpunumber);
serializer.setOutputByteStream(out);
serializer.serialize(tosend);
Run Code Online (Sandbox Code Playgroud)
此时服务器陷入僵局。它等待EOF,但我无法发送它,因为如果使用
out.close();
Run Code Online (Sandbox Code Playgroud)
要么
skt.shutdownOutput();
Run Code Online (Sandbox Code Playgroud)
我关闭了套接字,并且必须保持此连接有效。
我无法在服务器中收到“解析错误”,因此无法发送“ \ 0”。
我该怎么做?我可以在不关闭套接字的情况下“关闭”输出流吗?
解决方法 我创建了具有高级Stream手势的新类XMLStreamOutput和XMLStreamInput。