小编Dav*_*rsa的帖子

如何为System.out.println输出颜色?

如何为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)

java colors system.out

118
推荐指数
8
解决办法
20万
查看次数

在一个字符串向量上,连接运算符的等价物是什么?

我无法在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)

string rust

83
推荐指数
3
解决办法
5万
查看次数

如何在迭代器的collect语句中添加类型注释?

我有这个代码:

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();语句中?

rust

9
推荐指数
2
解决办法
6557
查看次数

如何解除阻塞在ServerSocket.accept()上阻塞的线程?

我有一个服务器线程与此代码:

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()因为我必须向注册客户端发信号通知服务器正在关闭.

有任何想法吗?

java sockets

6
推荐指数
1
解决办法
7471
查看次数

如何在Java中获得最大CPU时钟

Runtime.getRuntime().availableProcessors();
Run Code Online (Sandbox Code Playgroud)

我可以获得可用的CPU数量.

但是我怎样才能获得他们的时钟频率?

我正在寻找一种独立于os的解决方案.

java cpu

5
推荐指数
1
解决办法
3078
查看次数

在遗传算法中执行向量交叉的最佳方法是什么?

我正在使用遗传算法"学习"草稿/跳棋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的突变,足以传递给下一代.

那么,有一种更好的方法可以使用数组来执行交叉吗?

artificial-intelligence machine-learning genetic-algorithm

5
推荐指数
1
解决办法
1916
查看次数

如何通过套接字InputStream发送XML数据

我正在尝试使用基于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。

java xml sockets stream

2
推荐指数
1
解决办法
2万
查看次数