小编Ste*_*n C的帖子

美元符号($)在printf格式字符串中做什么?

我正在尝试使用printf语句在java中格式化,如在此网页中:单击此处.但我无法弄清楚$ sign的目的是什么.有人可以向我解释一下吗?

输入:

java 100
cpp 65
python 50
Run Code Online (Sandbox Code Playgroud)

预期输出:(应该有一个空格而不是_)

 ================================
 java___________100 
 cpp___________065 
 python_________050 
 ================================
Run Code Online (Sandbox Code Playgroud)

我的代码:

public class Solution {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("================================");
        for(int i=0;i<3;i++)
        {
            String s1=sc.next();
            int x=sc.nextInt();
            System.out.printf(s1 + "%03d", x);
            System.out.println();
        }
        System.out.println("================================");

    }
}
Run Code Online (Sandbox Code Playgroud)

java printf string-formatting system.out

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

grep*做什么?

我正在读这个教程

并且有这条线:

    grep da * 2> grep-errors.txt
Run Code Online (Sandbox Code Playgroud)

这太神秘了,作者没有分解语法.

bash grep

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

System.identityHashCode() 对象被 GC 后是否可以返回相同的 hashCode

假设System.identityHashCode(object1)==123object1被垃圾收集。新创建的对象是否可能具有与 GC 之前object2相同的身份哈希码?object1

java jvm hashcode

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

为什么 Integer.parseInt 在我的 java 代码中不起作用?

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

public class MainProgram {
   public static void main(String[] args ) throws IOException{
    String seconds = " ";

     Scanner sc2 = null;
        try {
            sc2 = new Scanner(new File("/Users/mohammadmuntasir/Downloads/customersfile.txt"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();  
        }

        boolean first = true;
        while (sc2.hasNextLine()) {
                Scanner s2 = new Scanner(sc2.nextLine());    
            while (s2.hasNext()) {
                String s = s2.next();
                if (first == true){
                    seconds = s;
                    first = false;
                }

            }
        }
        System.out.println(Integer.parseInt(seconds)); // causes ERROR?

     } …
Run Code Online (Sandbox Code Playgroud)

java parseint java.util.scanner

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

无法读取 jar 文件中的文件

我使用 spring-boot 开发了一个应用程序,我需要读取一个包含电子邮件的 csv 文件。

这是我如何做的一个片段:

public Set<String> readFile() {
        Set<String> setOfEmails = new HashSet<String>();

        try {
            ClassPathResource cl = new ClassPathResource("myFile.csv");
            File file = cl.getFile();
            Stream<String> stream = Files.lines(Paths.get(file.getPath()));
            setOfEmails = stream.collect(Collectors.toSet());

        } catch (IOException e) {
            logger.error("file error " + e.getMessage());
        }
        return setOfEmails;
    } 
Run Code Online (Sandbox Code Playgroud)

当我使用 eclipse 执行应用程序时它有效:run As --> spring-boot app

但是当我将 jar 放入容器 docker 时,方法 readFile() 返回一个空集。

我使用 gradle 来构建应用程序

你有什么想法吗?

java gradle docker spring-boot

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

java 8中的静态变量存储在哪里?

静态变量存储在哪里?据我所知,在 Java 7 中它是 PermGen。但是 java 8 迁移到了 MetaSpace。那么它们是存储在 MetaSpace 中还是存在其他位置?

java static java-8 metaspace

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

现代CPU是否有压缩指令

我一直对此感到好奇,因为压缩几乎用于所有事物。

  • 典型的现代CPU芯片的硅片上是否有任何基本的压缩支持说明?

  • 如果没有,为什么不包括在内?

  • 为什么这与加密不同?在加密中,某些CPU对AES等算法具有硬件支持?

cpu-architecture instructions

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

Java lambda 表达式和内存分配

假设我们有三个这样的方法。它们都做同样的事情,但它们在内存分配和效率方面有何不同?方法一会在每次调用期间创建 Function 的实例,但第二个方法会这样做吗?应该始终使用第三个版本还是其中一个版本是安全的并且 JIT 编译器会负责内存优化?

class Test {
    Map<String, Set<String>> mapOfSets = new HashMap<>();
    static final Function<String, Set<String>> FUNCTION = s -> new HashSet<>();

    void method1(String key, String value) {
        Function<String, Set<String>> func = s -> new HashSet<>();
        mapOfSets.computeIfAbsent(key, func).add(value);
    }

    void method2(String key, String value) {
        mapOfSets.computeIfAbsent(key, s -> new HashSet<>()).add(value);
    }

    void method3(String key, String value) {
        mapOfSets.computeIfAbsent(key, FUNCTION).add(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

为什么 Random::nextInt 在 java 中不允许作为方法引用?

所以我正在阅读泛型和函数式接口。显示了两种方法 - 使用 Lambda,使用方法引用。使用了以下示例:

Predicate<String> ref = String::isEmpty;
Run Code Online (Sandbox Code Playgroud)

Java 使用在运行时提供的参数作为调用 isEmpty 的实例。这是允许的,因为 isEmpty() 是 String 类中的一个实例方法并且不带任何参数。

我的问题是,当我使用以下代码行时,为什么会显示编译错误:

Supplier<Integer> ref2 = Random::nextInt;
Run Code Online (Sandbox Code Playgroud)

毕竟 nextInt() 是 Random 类中的实例方法,就像 String 类中的 isEmpty() 一样,它也不带参数。

java java-8

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

使用 Python 生成 Java 兼容的 Diffie-Hellman

我正在尝试用 Python 重写以下代码。原始代码是使用sjcl库用 Javascript 编写的。

// Inputs
var serverPubX = "WIUBDotrk02Rk/apL11jQPbmX0quyaYz2EIkGUlVf7s=";
var serverPubY = "diZ2CbfSUy5Kr82OIfd4Ajusq2K+/kjGZ7ymcqVwn2k=";

// The code
var serverPubXBits = sjcl.codec.base64.toBits(serverPubX);
var serverPubYBits = sjcl.codec.base64.toBits(serverPubY);
var serverPubKeyPointBits = serverPubXBits.concat(serverPubYBits);

var serverPubKey = new sjcl.ecc.elGamal.publicKey(
    sjcl.ecc.curves.c256, serverPubKeyPointBits);

var clientKeys = sjcl.ecc.elGamal.generateKeys(256, 1);

// What I need:
var sharedKey = clientKeys.sec.dhJavaEc(serverPubKey);
Run Code Online (Sandbox Code Playgroud)

我的主要问题是dhJavaEc功能。根据 sjcl 文档,它是Java 兼容的 Diffie-Hellmann 函数。但是我在 pycryptodome 库中找不到任何等效的东西。

我检查了dhJavaEc代码这是它的作用:

// Looks like it converts the server key to Jacobian and then multiply …
Run Code Online (Sandbox Code Playgroud)

python cryptography elliptic-curve diffie-hellman

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