Java开发中的一些小技巧

Java开发中的一些小技巧

Java获取URL地址中传递的参数

/**
     * 获取URL中的参数名和参数值的Map集合
     * @param url
     * @return
     */
    private Map<String, String> getUrlPramNameAndValue(String url){
    String regEx="(\\?|&+)(.+?)=([^&]*)";//匹配参数名和参数值的正则表达式
        Pattern p = Pattern.compile(regEx);  
        Matcher m = p.matcher(url);
     // LinkedHashMap是有序的Map集合,遍历时会按照加入的顺序遍历输出
    Map<String, String> paramMap = new LinkedHashMap<String, String>();
        while(m.find()){
        String paramName = m.group(2);//获取参数名
        String paramVal=m.group(3);//获取参数值
            paramMap.put(paramName, paramVal);
        }
        return paramMap;
    }

- 阅读剩余部分 -

windows下使用批处理脚本实现多个版本的JDK切换

我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK

当我们想要切换使用的JDK版本时,我们可以有两种做法:
  1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可.
  2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOME环境变量的值,这是一种偷懒的做法,这种做法需要一个RefreshEnv.exe辅助软件来刷新环境变量的值



- 阅读剩余部分 -

使用poi解析Excel

解析xls

package xls;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class XlsMain {

    public static void main(String[] args) throws IOException {
        XlsMain xlsMain = new XlsMain();

        xlsMain.readXls();
    }

    private void readXls() throws IOException {
        InputStream is = new FileInputStream("D:\\excel\\xls_test2.xls");
        HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

        // 循环工作表Sheet
        for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
            HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
            if (hssfSheet == null) {
                continue;
            }

            // 循环行Row 
            for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
                HSSFRow hssfRow = hssfSheet.getRow(rowNum);
                if (hssfRow == null) {
                    continue;
                }

                // 循环列Cell  
                for (int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++) {
                    HSSFCell hssfCell = hssfRow.getCell(cellNum);
                    if (hssfCell == null) {
                        continue;
                    }

                    System.out.print("    " + getValue(hssfCell));
                }
                System.out.println();
            }
        }
    }

    @SuppressWarnings("static-access")
    private String getValue(HSSFCell hssfCell) {
        if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
            return String.valueOf(hssfCell.getBooleanCellValue());
        } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
            return String.valueOf(hssfCell.getNumericCellValue());
        } else {
            return String.valueOf(hssfCell.getStringCellValue());
        }
    }

}

- 阅读剩余部分 -

Gson用户指南

1、Overview(概览)

Gson是一个Java类库,用于将Java对象转换为它们所代表的JSON数据,也可以用于将一个JSON字符串转换为对应的Java对象。Gson是一个开源项目,托管于http://code.google.com/p/google-gson

Gson可以用于任意的Java对象,包括已经存在但你没有对应源代码的对象。

2、Goals for Gson(Gson的目标)

* 提供像toString()和构造方法(工厂方法)一样简单使用的机制来将Java对象转换为JSON或者反过来将JSON转换为Java对象。

* 允许将已经存在并且不可修改的对象转换JSON,或者反过来。

* 允许为对象自定义映射关系。

* 支持任意复杂的对象。

* 生成紧凑又易读的JSON输出。

- 阅读剩余部分 -

一个例子让你了解Java反射机制

Java反射机制:

通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们.

理论的东东太多也没用,下面我们看看实践 Demo ~

- 阅读剩余部分 -