小编Mar*_*eel的帖子

如何将大型机二进制文件转换为可读形式

我们通过XCOM接收二进制格式的 EBCDIC 大型机文件。目前,有一个基于 C 的遗留应用程序正在将其转换为可读的 ASCII 格式。该文件现在如下所示:

在此输入图像描述

作为迁移的一部分,我们必须迁移 Java 上的遗留应用程序。您能否建议或分享一些如何将该二进制文件转换为 Java 可读格式的链接?

java binaryfiles mainframe ebcdic

0
推荐指数
1
解决办法
983
查看次数

如何优化Java中的函数以使其更快?

public static ArrayList<Integer> duplicates(int[] arr) {
    ArrayList<Integer> doubles = new ArrayList<Integer>();
    boolean isEmpty = true;
    for(int i = 0; i<arr.length; i++) {
        for (int j = i+1; j< arr.length; j++) {
            if( arr[i] == arr[j] && !doubles.contains(arr[i]) ){
                doubles.add(arr[i]);
                isEmpty = false;
                break;
            }
        }
    }
    if(isEmpty) doubles.add(-1);
    Collections.sort(doubles);
    return doubles;
}

public static void main(String[] args) {
    System.out.println( ( duplicates( new int[]{1,2,3,4,4,4}  ) ) ); // Return: [4]
}
Run Code Online (Sandbox Code Playgroud)

我用 Java 创建了这个函数,它返回输入 int 数组的倍数,如果输入数组为空或没有倍数,则返回 -1。

它有效,但可能有一种方法可以让它更快。是否有任何好的做法可以使函数总体上更高效、更快?

java arrays arraylist

0
推荐指数
1
解决办法
383
查看次数

如何从历史记录中删除所有大于 1 Mb 的文件(但将它们保留在存储库中)

我有一个包含许多大文件(psd、exe、pdf 等)的存储库,每次我提交这些文件的更新时,git .pack 文件都会急剧增长以保留历史记录。如何从历史记录中删除所有大于 1mb 的文件,但将它们保留在存储库中。

另外,是否可以设置特定文件从不存储在历史记录中?

git github git-filter-branch git-commit git-rewrite-history

0
推荐指数
1
解决办法
3926
查看次数

Java泛型:&lt;T&gt; T[] toArray(T[] a)中的第一个“T”是什么意思?

我正在使用 Eclipse,当我导航 List.class 的反汇编时,我看到了这个:

<T> T[] toArray(T[] a);
Run Code Online (Sandbox Code Playgroud)
  1. 这里的领先<T>实际上意味着什么?它是返回类型的一部分吗?我猜返回值是T[].

  2. 在什么情况下函数需要声明 like<T> T[]作为函数签名?

java generics types declaration function

0
推荐指数
1
解决办法
99
查看次数

Java lambda 如何自动匹配接口的函数?

我正在测试java的lambda是否与接口函数匹配,我在下面编写了代码,它可以工作。我有界面MyHandler,及其myFunction。在构造时,Java lambda 被转换为我的接口的实现者。

package mygroup;
interface MyHandler{
    void myFunction(int i);
}
class Worker{
    private final MyHandler handler;
    public Worker(MyHandler h){
        handler = h;
    }
    public void work(int i){handler.myFunction(i);};
}
public class TestLambda {
    public static void main(String[] args) {
        Worker worker = new Worker(i -> System.out.println(i));
        worker.work(3);
    }
}
Run Code Online (Sandbox Code Playgroud)

程序将打印3. 到目前为止一切顺利,但如果我添加一些其他函数声明,MyHandler如下所示:

interface MyHandler{
    void myFunction(int i);
    void f(int i, int j);
}
Run Code Online (Sandbox Code Playgroud)

Thread 构造函数中的 lambda 将无法编译,表示

The constructor Worker((<no type> i) -> …
Run Code Online (Sandbox Code Playgroud)

java lambda types interface function

0
推荐指数
1
解决办法
212
查看次数

BigDecimal - 意外的舍入行为

我想我发现了一个错误:

MathContext mathContext = new MathContext(5, RoundingMode.HALF_UP);
result = BigDecimal.valueOf(0.004798).round(mathContext); // fails
// result is 0.004798!!! (same value)
Run Code Online (Sandbox Code Playgroud)

我不得不使用以下替代方案:

BigDecimal bigDecimal = BigDecimal.valueOf(0.004798);
BigDecimal new_divisor = BigDecimal.valueOf(1, 5);
bigDecimal_array = bigDecimal.divideAndRemainder(new_divisor);
MathContext mathContext = new MathContext(5, RoundingMode.HALF_UP);
result = bigDecimal.subtract(bigDecimal_array[1], mathContext);
result = result.stripTrailingZeros();
Run Code Online (Sandbox Code Playgroud)

在我看来,这个错误(如果是这样的话)非常危险。

java bigdecimal

0
推荐指数
1
解决办法
223
查看次数

当字符数未知时定义 StringBuilder 容量

我知道,为了良好的实践,StringBuilder应该使用预期内容的容量值进行初始化。否则,编译后增加大小将是一个昂贵的操作。

我的问题是,如果我们不知道预期的大小,应该如何处理?是否有一个标准值/方法来避免幕后昂贵的操作?

如果没有,如果容量大于初始化时给定的值,是否有可能在代码中发出警报/记录?

java stringbuilder capacity

0
推荐指数
1
解决办法
127
查看次数

Java formatting GMT Date

I'm not finding a way to do edit GMT Date

I receive "params.date" one string in this format "yyyyMMdd", so this is my flow:

Date date = new SimpleDateFormat('yyyyMMdd').parse(params.data)
System.out.println(sdf.parse(params.data))
Run Code Online (Sandbox Code Playgroud)

output:

Thu Nov 17 21:00:00 GMT-03:00 2022
Run Code Online (Sandbox Code Playgroud)

And I need it:

Thu Nov 17 21:00:00 GMT-00:00 2022
Run Code Online (Sandbox Code Playgroud)

Can someone help me?

java calendar date

0
推荐指数
1
解决办法
204
查看次数

每次单击一个按钮时用新文本更新标签

我正在尝试为我的大学项目制作一部交互式视觉小说,但我不知道如何仅用一个按钮将标签的文本更新为下一行对话。

\n
public void NicoleDialogue() {\n    String[] NDialogue = {"My name is Tala Nicole Dimaapi Valdez / Joshua Manuel Garcia Reyes, I know a long ass name but I\xe2\x80\x99m filipino what can I say?",\n    "I\xe2\x80\x99m a student of DLSU, one of the most prestigious universities in the country and today I will join GreenGiant FM, an organization for people who want to become radio hosts or who are just interested in radio hosting in general.",\n    "It is my first time …
Run Code Online (Sandbox Code Playgroud)

java javafx

0
推荐指数
1
解决办法
71
查看次数

如何重写 lombok 构建器方法

我想覆盖 Lombok 默认构建器方法。我尝试了这段代码,但它不起作用。

甚至可以做这样的事情吗?

@Data
@Builder
static class A {
    private int a;

    static class Builder {
        A.ABuilder a(int x) {
            this.a = 2 * x;
            return this;
        }
    }

}

private static void fun() {
    var a = A.builder()
            .a(1)
            .build();
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

java lombok

0
推荐指数
1
解决办法
8971
查看次数