java 获取key值_java如何获取String里面的键值对:"key=value&key=value"

我一个朋友帮我写了一个,分享给大家:

package com.qtay.gls.common;

import java.util.Arrays;

import java.util.HashMap;

import java.util.Map;

import java.util.Objects;

public class FormDecoder {

private Map parameters;

public FormDecoder(String str) {

this.parameters = new HashMap<>();

parse(this.parameters, str);

}

public String get(String key) {

return this.get(key, null);

}

public String get(String key, String defaultValue) {

String value = this.parameters.get(key);

return Objects.isNull(value) ? defaultValue : value;

}

private int getInt32(String key) {

return this.getInt32(key, 0);

}

private int getInt32(String key, int defaultValue) {

String value = this.parameters.get(key);

return Objects.isNull(value) || value.isEmpty() ? defaultValue : Integer.parseInt(value);

}

public long getInt64(String key) {

return this.getInt64(key, 0L);

}

private long getInt64(String key, long defaultValue) {

String value = this.parameters.get(key);

return Objects.isNull(value) || value.isEmpty() ? defaultValue : Long.parseLong(value);

}

private float getFloat32(String key) {

return this.getFloat32(key, 0F);

}

private float getFloat32(String key, float defaultValue) {

String value = this.parameters.get(key);

return Objects.isNull(value) || value.isEmpty() ? defaultValue : Float.parseFloat(value);

}

public double getFloat64(String key) {

return this.getFloat64(key, 0D);

}

private double getFloat64(String key, double defaultValue) {

String value = this.parameters.get(key);

return Objects.isNull(value) || value.isEmpty() ? defaultValue : Double.parseDouble(value);

}

private boolean getBool(String key) {

return this.getBool(key, false);

}

private boolean getBool(String key, boolean defaultValue) {

String value = this.parameters.get(key);

return Objects.isNull(value) || value.isEmpty() ? defaultValue : Boolean.parseBoolean(value);

}

private boolean contains(String key) {

return this.parameters.containsKey(key);

}

private static void parse(Map map, String str) {

if(Objects.isNull(str) || str.isEmpty()) return ;

Arrays.stream(str.split("&"))

.filter(kv -> kv.contains("="))

.map(kv -> kv.split("="))

.forEach(array -> map.put(array[0], array[1]));

}

// public static void main(String[] args) {

// String str = "a=1&b=3.5&c=true";

// FormDecoder decoder = new FormDecoder(str);

// System.out.println(decoder.contains("c"));

// System.out.println(decoder.get("a"));

// System.out.println(decoder.getInt32("a"));

// System.out.println(decoder.getFloat32("b"));

// System.out.println(decoder.getBool("c"));

// }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值