如何在JAVA中传递以逗号分隔的值作为函数参数的字符串 - java

我有一个可以接受任何数量的INTEGER参数的方法:
pages(int,int...)

此方法是选择PDF文件的某些页面。

以以下字符串类型存储的书页:

String pages = "1,2,3,6,9";

我想将此字符串作为方法的参数看起来像:

pages(1,2,3,6,9);

java大神给出的解决方案

使用流可以很容易地做到这一点:

Stream
  .of(commaSeparated.split(","))
  .mapToInt(Integer::parseInt)
  .toArray();

您可以将其与varargs结合使用以获得所需的内容:

public static void main (String[] args) {
  String commaSeparated = "0,1,2,3,4,5,6,7,8,9";
  int[] arguments =
    Stream
      .of(commaSeparated.split(","))
      .mapToInt(Integer::parseInt)
      .toArray();
  pages(arguments);
}

public static void pages(int... numbers) {
  System.out.println("numbers: " + Arrays.toString(numbers));
}

输出将是:

numbers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

注意:当然在这种情况下不需要varargs,仅当您计划使用可变数量的int参数调用相同的方法时,它才有用,否则您可以将其签名更改为pages(int[] numbers)

如何在Java中以语言环境正确的顺序格式化日期和月份? - java

有没有一种方法可以用Java / Kotlin中的区域设置正确的格式格式化日和月(以紧凑格式)而不格式化年份?因此,对于英语,应为“ 9月20日”,而对于瑞典语为“ 9月20日”。为了进行比较,在Cocoa平台上,我可以执行以下操作(在Swift中):let formatter = DateFormatter() formatter.locale = Loc…

如何修改休眠的SQL查询? - java

我有点好奇,有没有办法修改hibernate的核心,以便我可以自定义生成的SQL query。例如,在生成的查询中添加功能以使用connect by prior(oracle)或我要自定义的任何其他子句。 java大神给出的解决方案 起初,这样的问题总是在我心中敲响警钟。你被警告了...AFAIK,hibernate使用所谓的dialects进行特定的优化。…

用Java构建大批量数据处理工具 - java

Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。 3年前关闭。 Improve this question 我正在尝试使用Java构建ETL工具。 ETL工具用于对大量数据(关系型和其他类型)进行批量读取,…

为什么这两个代码片段会产生相同的结果? - java

我正在看一堆类似这样的代码,并使用Comparator<T>对字符串数组进行排序(我问这个问题的唯一原因是我很好奇Comparator<T>如何处理所有这一切): String[] names = //An string array Arrays.sort(names, new Comparator<String>() {…

用Java封装对象? - java

private中的Java提供类级别的封装。可以封装一个对象吗?还是这样做徒劳?例如,如果我们将一个类定义为 public class Person { private String ssn; private ArrayList<Person> friends = new ArrayList<Person>(); public voi…