小编Arv*_*ash的帖子

这个类是不可变的吗?

下面的类没有final关键字,但它的成员变量是privateandfinal并且该类没有公开 mutate/set 方法。这个类是不可变的吗?

public class Abc {

    private final int id;
    private final String name;

    public Abc(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public int getId() {
        return id;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
3
解决办法
366
查看次数

如何在 Java 中将字符串时间转换为长毫秒

我正在尝试使用下面的代码将时间字符串转换为毫秒。因为我会将时间用作倒数计时器。

问题是时间来自数据库并且它是 varchar 类型。我试过这段代码,但它没有给我正确的输出。

String timeDuration = "10:00"; //for example only
SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
Date time = sdf.parse(timeDuration);
long millis = time.getTime(); //The output must be 600000
Run Code Online (Sandbox Code Playgroud)

我使用此代码得到错误的“毫秒”。

我正在使用 Android Studio。

java duration java-time

3
推荐指数
1
解决办法
93
查看次数

时区 BST 偏移量错误

无法理解为什么 BST(UTC 偏移:UTC +1)在以下代码中得到偏移 +11。我期望+1。

final String lastUpdated = "Mon Sep 27 18:29:00 BST 2021";
final DateTimeFormatter LAST_UPDATED_FORMATTER = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z y").withLocale(Locale.UK);
ZonedDateTime zonedDateTime = ZonedDateTime.parse(lastUpdated, LAST_UPDATED_FORMATTER);
LocalDateTime localDateTime = zonedDateTime.withZoneSameInstant(ZoneId.of("UTC")).toLocalDateTime();
System.out.println(zonedDateTime.getOffset()); // +11:00; expected +1
System.out.println(localDateTime.toString());
Run Code Online (Sandbox Code Playgroud)

控制台输出:

+11:00
2021-09-27T07:29
Run Code Online (Sandbox Code Playgroud)

一旦使用 UTC 日期,一切就清楚了:

final String lastUpdated = "Mon Sep 27 18:29:00 BST 2021";
Run Code Online (Sandbox Code Playgroud)

java timezone datetime-parsing java-time zoneddatetime

3
推荐指数
1
解决办法
226
查看次数

最新版本的 jdk17 和 javafx17 的 rt.jar 和 jfxrt.jar 的等效库是什么?

我的任务是使用旧的 java 及其使用的库来升级旧的桌面应用rt.jar程序jfxrt.jar。我在网上搜索了有关库(rt.jar& jfxrt.jar)的信息,但显然,它在 Java 17 和 JavaFX 17 中不再存在。最新版本的 Java 17 和 JavaFX 17 的等效库是rt.jar什么?jfxrt.jar

java javafx java-17 javafx-17 openjdk-17

3
推荐指数
1
解决办法
2414
查看次数

无法在适用于 Windows 的 Docker Desktop 中装载驱动器 d:\ 或 e:\ 的卷

在互联网和 Stackoverflow 上搜索了此内容但没有成功

在 Windows 10 上使用 Docker for Desktop 版本 4.12.0,并以 WSL2 作为后端。

在 Windows 命令提示符窗口中,以下内容有效并列出 c:/data 中的文件

docker run --rm -v c:/data:/target alpine ls /target 
Run Code Online (Sandbox Code Playgroud)

但以下都不起作用。/target 目录始终为空!

docker run --rm -v d:/data:/target alpine ls /target 

docker run --rm -v "d:/data:/target" alpine ls /target

docker run --rm -v "d:/data":/target alpine ls /target 

docker run --rm -v /mnt/d/data:/target alpine ls /target

docker run --rm -v /run/desktop/host/d/data:/target alpine ls /target 

docker run --rm -v "/run/desktop/host/d/data:/target" alpine ls /target
Run Code Online (Sandbox Code Playgroud)

但是,在 WSL 2 …

docker docker-volume docker-container docker-desktop

3
推荐指数
1
解决办法
2292
查看次数

在线打印最后 n 列

如何使用 awk 打印最后 4 列?

以下解决方案适用于数字:

命令:

echo "1 2 3 4 5" | awk '{print $(NF-3),$(NF-2),$(NF-1),$NF}'
Run Code Online (Sandbox Code Playgroud)

输出:

2 3 4 5
Run Code Online (Sandbox Code Playgroud)

但是,当我使用带有如下特殊字符的文本时,我收到语法错误:

echo "2023-01-03 01:05:06:       Table test completed      (0 hrs 0 mins 0.009 Secs)" |  awk '{print $(NF-3),$(NF-2),$(NF-1),$NF}'
Run Code Online (Sandbox Code Playgroud)

输出:

> " | awk '{print $(NF-2),$(NF-1),$NF}'
mins 0.009 Secs)
awk: The field -2 cannot be less than 0.

The input line number is 2.
The source line number is 1.
Run Code Online (Sandbox Code Playgroud)

我期望打印出上面示例的以下内容:

(0 hrs 0 mins 0.009 Secs)
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?

aix awk

3
推荐指数
1
解决办法
101
查看次数

根据路径的开头重定向

我正在构建一个 Laravel 项目。该项目本身有一个结构完全不同的“遗留”版本。据记录,某些用户正在尝试访问在新环境中找不到的文件。

为了快速“修复”,我们想要重定向路径,例如

  • /media/22044/blablabla.pdf/en/press

快速的解决方案是使用

Redirect 301 /media/22044/blabla.pdf /en/press
Run Code Online (Sandbox Code Playgroud)

但我们希望背后的道路/media/是动态的。我对.htaccess东西很陌生。有办法做到吗?

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]

# this one works, but not dynamic
#Redirect 301 /media/2336/blabla.pdf /en/press

# failed experiments
#Redirect 301 (\/media)(.*)$ /en/press
#Redirect 301 ^/media/(.*)$ /en/press
#RewriteRule ^/media/(.*) /en/press [R=301,NC,L]
Redirect 301 /media/(.*) /en/press
</IfModule>
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite laravel

3
推荐指数
1
解决办法
91
查看次数

在第 10 个逗号后的项目周围加上引号

我曾经有一个 awk 命令,它可以很好地在输出文件中的最后一项(第 10 个逗号之后)周围加上引号,这样当我将它们作为 CSV 文件打开时,最后一项就不会因为它的原因而被分割。额外的逗号。然而,由于某种原因, awk 命令被破坏了(我从来没有想到有人帮助我创建它)并且它返回一个包含许多空行或已删除数据的文件。

这是我的初始输出文件的示例:

e7479580f6f3be15b5632f64f9de8df7,gi|1858620278|gb|MN628024.1|,132,541,100,132,100.000,2.02e-60,244,82755,Gymnanthemum amygdalinum voucher PCG/UNN/030-52 ribulose-1,5-bisphosphate carboxylase/oxygenase large subunit (rbcL) gene, partial cds; chloroplast
e7479580f6f3be15b5632f64f9de8df7,gi|1858620278|gb|MN628024.1|,132,541,100,132,100.000,2.02e-60,244,82755,Gymnanthemum amygdalinum voucher PCG/UNN/030-52 ribulose-1,5-bisphosphate carboxylase/oxygenase large subunit (rbcL) gene, partial cds; chloroplast
b875a20e3a4876aba15b0edf8973a3f4,gi|1832942633|gb|MN431198.1|,132,573,100,132,100.000,2.02e-60,244,39414,Plantago lanceolata ribulose-1,5-bisphosphate carboxylase/oxygenase large subunit (rbcl) gene, partial cds; chloroplast
023abf2ebf1c94fe890dfd1517a828c5,gi|1562068410|gb|MH569150.1|,132,715,98,129,100.000,9.41e-59,239,2508311,Brassica sp. 4 KS-2019 ribulose-1,5-bisphosphate carboxylase/oxygenase (rbcL) pseudogene, partial sequence; mitochondrial
Run Code Online (Sandbox Code Playgroud)

这就是我想要的输出文件的样子 - 它只是在最后一项周围有引号,即物种的全名及其测序信息。

e7479580f6f3be15b5632f64f9de8df7,gi|1858620278|gb|MN628024.1|,132,541,100,132,100.000,2.02e-60,244,82755,"Gymnanthemum amygdalinum voucher PCG/UNN/030-52 ribulose-1,5-bisphosphate carboxylase/oxygenase large subunit (rbcL) gene, partial cds; chloroplast"
e7479580f6f3be15b5632f64f9de8df7,gi|1858620278|gb|MN628024.1|,132,541,100,132,100.000,2.02e-60,244,82755,"Gymnanthemum amygdalinum voucher PCG/UNN/030-52 ribulose-1,5-bisphosphate carboxylase/oxygenase …
Run Code Online (Sandbox Code Playgroud)

awk

3
推荐指数
1
解决办法
63
查看次数

提取斜杠“/”后的第一个字母和最后一个完整单词

所以,我有这个字符串:

JobDefinition://apps/ess/scm/productHub/itemImport/ItemImportSchedulingJobDef

我想把它改造成:

/a/e/s/p/i/ItemImportSchedulingJobDef

当我使用时:sed -E 's|/([a-z]{1})|\1|g'

我刚刚得到

JobDefinition:/appsessscmproductHubitemImport/ItemImportSchedulingJobDef 我正在使用 sed,但我认为这是一个一般的正则表达式问题。

它基本上是一个命名空间,而且很长,所以我试图维护命名空间和最终唯一标识符的某些内容

它与完全限定类名的 spring 压缩日志记录非常相似(我的灵感)

regex sed

3
推荐指数
1
解决办法
66
查看次数

Kotlin DateTimeParseException

https://api.spacexdata.com/v3/launches获取日期 该日期的格式为:2006-03-25T10:30:00+12:00。我想将其转换为“dd,mm,yyyy”,但总是收到错误:“java.time.format.DateTimeParseException:文本'2006-03-25T10:30:00 + 12:00'无法解析,未解析的文本发现于索引 10"

我的代码:

val formatter = DateTimeFormatter.ofPattern("dd, mm, yyyy", Locale.US)
val myDate = LocalDate.parse(launchDate, formatter)

var launchDateConverted: String=  myDate.toString()
Run Code Online (Sandbox Code Playgroud)

我在字符串中获取数据,然后将其转换为日期进行格式化,然后将日期转换回字符串以在 UI 上显示。我使用了不同的方法,但找不到正确的方法。我当前的语言环境是“RU”。

datetime kotlin java-time datetimeformatter offsetdatetime

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