首页 > 解决方案 > java获取以特定字符串结尾的环境变量

问题描述

我需要从以特定字符串结尾的系统变量中获取 2 个环境变量。字符串是 PORT & HOST。例如,我有以下变量:

TEST_SERVICE1_PORT = 80
TEST_SERVICE1_HOST = 0.0.0.0
TEST_SERVICE2_PORT = 78
TEST_SERVICE2_HOST = 1.1.1.1
TEST_SERVICE3_PORT = 90
TEST_SERVICE3_HOST = 2.2.2.2
TEST_SERVICE4_PORT = 100
TEST_SERVICE4_HOST = 3.3.3.3

加上其他系统变量

这是我能做的:

var map = System.getenv().entrySet().stream()
                            .filter(x -> x.getKey().endsWith(serviceName + "_PORT"  ) || x.getKey().endsWith(serviceName + "_HOST"))
                            .collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
// serviceName is a custom input

例如,如果 servicename 是 SERVICE1,则映射将具有前 2 个变量。

从这张地图中,我需要获取 PORT & HOST 值。

我怎样才能做到这一点?我必须再次过滤结果地图还是有更好的方法?在此先感谢您的帮助

标签: java

解决方案


推荐阅读