如何从Java中的Map <String,String []>获取String值?

Cli*_*ote 0 java collections map

基本上,我有一个Map<String, String[] >包含一串键的字符串.如果我这样做String value = myMap.get("keyName");,这将返回一个Object而不是一个字符串,并回显它产生这样的东西:Ljava.lang.String;@1dfa166.做toString()也没有帮助.

要将值作为字符串,我需要做什么:

我的代码看起来像这样:

String value ="" + request().body().asFormUrlEncoded().get("keyName");
Run Code Online (Sandbox Code Playgroud)

这里的asFormUrlEncoded()方法是返回的Map

Sha*_* D. 5

您将返回一个字符串数组(声明的通用Map的第二个参数).

将其更改为

String [] values = myMap.get( "keyName" );

并检查values.length以查看数组中有多少个字符串.如果它只是一个,你可以只访问它values[0].

它允许字符串数组的原因是因为表单中的每个键都可以有多个值,因此它不能返回单个字符串.

  • 我得到的印象是地图是由'asFormUrlEncoded()'创建/构建的,这可能是你没有创作的.声明值为Map <String,String>不会为您进行转换,如果这就是您所要求的.检查单个值可能有点痛苦,但您总是可以创建一个实用程序方法来为您执行此操作. (2认同)