英文:
Converting Set<byte[]> to List<String>
问题
我在我的应用程序中使用了Redis内存数据库。我们正在使用sAdd
方法将一些字符串值添加到集合中,并使用smembers
方法从集合中获取这些值。该方法返回一个Set<byte[]>
。我需要将这个集合转换为一个字符串列表。我尝试了下面的方法,但不起作用。
List<String> list = Arrays.asList((servKeys)).toArray();
英文:
I'm using redis in memory database in my application. We are adding to a set some string values using the sAdd method and fetching the values from set using the smembers method. This method is returning a Set<byte[]>. I need to convert this set to a list of String. I tried the below way but it is not working.
List<String> list = Arrays.asList((servKeys)).toArray();
答案1
得分: 1
你可以使用流API与Base64
编码器:
List<String> list = servKeys.stream()
.map(bytes -> Base64.getEncoder().encodeToString(bytes))
.collect(Collectors.toList());
作为替代方案,你可以使用new String(bytes, StandardCharsets.UTF_8)
。
这取决于byte[]
表示的数据类型。上面的代码假设是纯文本,然而你可以轻松调整其行为。
英文:
You can use Base64
encoder with Stream API:
List<String> list = servKeys.stream()
.map(bytes -> Base64.getEncoder().encodeToString(bytes))
.collect(Collectors.toList());
Alternatively to Base64
, you can use new String(bytes, StandardCharsets.UTF_8)
.
This depends on what kind of data byte[]
is. The code above assumes a plain text, however, you can easily adjust the behavior.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论