gpt4 book ai didi

Java - 从字节数组中删除换行符

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:34 24 4
gpt4 key购买 nike

所以我目前正在尝试使用这个(非常低效)的方法从字节数组中删除换行符

public void fixPasswords() {
ArrayList<Byte> active = new ArrayList<>();
ArrayList<Byte> stored = new ArrayList<>();
for (byte b : activePassword) {
if (b!='\n'||b!='\r') {
active.add(b);
}
}
activePassword = new byte[active.size()];
for (int i = 0; i < active.size(); i++) {
activePassword[i] = active.get(i);
}

for (byte b : storedPassword) {
if (b!='\n'||b!='\r') {
stored.add(b);
}
}
storedPassword = new byte[stored.size()];
for (int i = 0; i < stored.size(); i++) {
storedPassword[i] = stored.get(i);
}
activePasswordString = new String(activePassword);
storedPasswordString = new String(storedPassword);
System.out.println("Active: "+activePasswordString);
System.out.println("Stored: "+storedPasswordString);
}

但是,它并没有删除换行符

Active: fK��f3�Nc1L�2*j�JQ��b�@|�`
Stored: >K�U�0p
uvn��B�

存储的密码似乎仍然保留换行符,我将如何检测字节数组中的换行符并删除它们?

最佳答案

您应该使用 &&(与)运算符,而不是 || (或)运算符。

您的代码:

if (b!='\n'||b!='\r')

试试这个:

if (b!='\n'&&b!='\r')

or 运算符只需要其中一个条件为 true 即可为 true。即使 b 等于 '\n'b!='\r' 也成立,反之亦然。因此 or 表达式将始终计算为 true,并且您将添加字节数组中的每个字符。

关于Java - 从字节数组中删除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48915787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com