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

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"));

// }

}

java 获取string值_java如何获取String里面的键值对:key=valuekey=value相关推荐

  1. java获取object属性值_java反射获取一个object属性值代码解析

    有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...

  2. java 获取json的值_Java如何获取JSON数据中的值

    场景:在接口自动化场景中,下个接口发送的请求参数,依赖上个接口请求结果中的值.需要将获取值作为全局参数引用. import java.io.File; import java.io.FileInput ...

  3. java字符串取反_Java探索之string字符串的应用代码示例

    String类中提供了丰富的用于操作字符串的方法. int indexOf(String str) 该方法用于返回当给定字符串在当前字符串中的位置,若当前字符串不包含给定字符串则返回-1. 重载的方法 ...

  4. java 获取jsp路径_java如何获取jsp页面上传的文件路径

    展开全部 楼主:用基础的java我不知道怎么实现.但是但62616964757a686964616fe78988e69d8331333335313131第三方jar包完全可以.而且上传文件方便. 代码 ...

  5. java后台怎么获取系统时间_Java 后台获取当前时间

    Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int year = c.get(Calendar.YEAR); int month = c.ge ...

  6. 在java中图片路径_java中获取图片路径三中方法

    java中获取图片路径的方法 //获取路径三中方法 //+ f.getOriginalFilename(); //String filedir = Thread.currentThread().get ...

  7. java 获取http地址_java如何获取当前时间,java如何获取ip地址

    展开全部 获取当前时间public static void main(String[] args) throws IOException { SimpleDateFormat format = new ...

  8. java引入string类_Java基础教程——String类

    String类 Java程序中的所有字符串字面值(如 "abc" )都是String的实例 字符串是常量(因为 String 对象是不可变的,所以可以共享) 字符串的本质是字符数组 ...

  9. java获得sftp目录_Java代码获取SFTP服务器文件

    1 /** 2 *@authorshansm3 * @date 2020/3/18 -17:274 */ 5 public classSFTPUtil {6 7 private transient L ...

  10. java微信获取所有用户_java微信获取用户列表示例

    公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的OpenID,可以通过 ...

最新文章

  1. Android开发之手机拍照功能的实现(源代码分享)
  2. Effective Objective-C [下]
  3. 关于云计算最新趋势的讨论
  4. nginx怎么用_后端服务老是重启,前端该如何拯救自己?nginx的妙用
  5. http协议相关内容
  6. sql语句中的in用法示例_PHP中的循环语句和示例
  7. .net动态控件的使用(listview ,treeview,tabControl)
  8. 洛谷 P3372 【模板】线段树 1
  9. 如何创建隐藏用户帐号
  10. 蓝桥杯 ADV-20 算法提高 交换Easy
  11. 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法...
  12. matlab做瑞利信道仿真,瑞利信道怎么用 matlab做仿真
  13. NTP/PTP时间同步入门
  14. 《Head First Android》读后感,电子书PDF下载
  15. 南油外服-网易游戏测试(外包) 面试
  16. 虚拟机VMware安装windows7 64位操作系统(图文版详解版)
  17. 容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站(体验有礼)
  18. Pinia(小菠萝)使用方法
  19. 网易区块链打造可信数字身份认证应用新场景,赋能科技峰会
  20. 潘多拉固件设置ipv6_openwrt-LEDE系统IPV6设置教程

热门文章

  1. 5.5 jmeter组件—取样器
  2. SAP QM 检验批里某检验特性的取样数量跟检验计划设置不符?
  3. 自定义协议推送的设计
  4. 刺客列传鸿蒙记,高淳高级中学2020-2021学年高一上学期阶段测试语文试题.docx
  5. Linux RS232驱动实验
  6. 改良型新药之详细分类
  7. 途牛android源码,途牛,Android 开发工程师,一面,攒人品
  8. 计算机视觉 (CV) 相关的会议或期刊投稿时间
  9. 关于审查元素与查看网页源码的区别
  10. 有一个函数 x , x大于1 ,y等于 { 2x-1 1大于等于x小于10 3x-11 x大于等于10 写一段程序,输入x,输出y。