Java Web实用小知识02

来源:互联网 发布:win10电脑优化 编辑:程序博客网 时间:2024/04/28 15:04

日期时间转换到页面显示

    两种方式:    1. OutputStream out = response.getOutputStream(); map.put("enterFromTime", sdf.format(itemData.getEnterFromTime()));// 入单时间    2. map.put("changeTime", DateUtil.formatDate(itemData.getChangeTime()));// 转单时间2种好。

日期加一天

高级搜索时会用到结束日期要加一天,以便得到符合的搜索结果

    //日期加一天:    //结束时间    if(searchJSON.has("endTime")){        String endTime = (String)searchJSON.get("endTime");        if(!endTime.equals("")){            Date date = DateUtil.getDateFormat().parse(endTime);            Calendar cal = Calendar.getInstance();            cal.setTime(date);            cal.add(Calendar.DATE, 1);            date = cal.getTime();            ItemSearchWrap.setEndTime(date);        }    }

java中string,integer转bigdecimal的例子

例子1,string 转BigDecimal

public class Test{     public static void main(String[] arg) {         String str1="2.30";        BigDecimal bd=new BigDecimal(str1);        System.out.println(bd);    } }

直接new 就行了。

例子2,BigDecimal和String的相互转换

/*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ import java.math.BigDecimal; //数字字符串 String StrBd="1048576.1024"; //构造以字符串内容为值的BigDecimal类型的变量bd BigDecimal bd=new BigDecimal(StrBd); //设置小数位数,第一个变量是小数位数,第二个变量是取舍方法(四舍五入) bd=bd.setScale(2, BigDecimal.ROUND_HALF_UP); //转化为字符串输出 String OutString=bd.toString();

补充: Integer转BigDecimal

new BigDecimal(Integer.parseInt(findCcid.toString()))

java中类型转换String,list,int

1.String ->list

String[] arr = tpAssignMarkStr.split(",");        List<String> list = Arrays.asList(arr);

2.list->String

List<String> markList = tpAssignMarkFieldDao.getTpAssignDeptMarkField(null,paperId);        String markStr = StringUtils.join(markList, ",");//考虑到存储多个标志        String[] markString = markStr.split(",");        List<TpSampleDataBean> dataList = tsSampleTemplateBean.getTpSampleDataBeans();        List<String> sampleDataIds= new ArrayList<String>();//存放样本的数据list        for (TpSampleDataBean d : dataList) {            for (String str : markString) {                if (str.equals(d.getFieldChar1())) {// FieldChar1存的是标志                    if (StringUtils.equals(d.getPaperId(), paperId)                            && StringUtils.equals(d.getComplianceId(),complianceId)) {                        sampleDataIds.add(d.getId());                    }                }            }        }

1.int->String

int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i);第三种方法:String s = Integer.toString(i);

2.String->int

s="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Integer.valueOf(s).intValue();

ps1:

第一种方法:s=i+”“; //会产生两个String对象 第二种方法:s=String.valueOf(i);
//直接使用String类的静态方法,只产生一个对象
第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new
Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
Double, Float, Long 转成字串的方法大同小异.

java遍历Map对象

1.在for-each循环中使用entries来遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();for (Map.Entry<Integer, Integer> entry : map.entrySet()) {    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());}

2.在for-each循环中遍历keys或values。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  //遍历map中的键  for (Integer key : map.keySet()) {      System.out.println("Key = " + key);  }  //遍历map中的值  for (Integer value : map.values()) {      System.out.println("Value = " + value);  } 

该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

IDEA 编译时报错 “未结束的字符串文字”解决方法

这个问题就是编码的问题 UTF-8和GBK的混淆,采用如下方法:
1、在idea的Settings中,找到File Encodings,将IDE Encoding 改为UTF-8
2、更换idea下面的encodings.xml文件,恢复到最近一次设置
3、或者更改encodings.xml里面的配置,GBK和UTF-8统一一下

jdk map详解

Java 自带了各种 Map 类。这些 Map 类可归为三种类型:1. 通用Map,用于在应用程序中管理映射,通常在 java.util 程序包中实现HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap2. 专用Map,通常我们不必亲自创建此类Map,而是通过某些其他类对其进行访问java.util.jar.Attributes、javax.print.attribute.standard.PrinterStateReasons、java.security.Provider、java.awt.RenderingHints、javax.swing.UIDefaults3. 一个用于帮助我们实现自己的Map类的抽象类AbstractMap类型区别HashMap最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。TreeMap能够把它保存的记录根据键(key)排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。TreeMap不允许key的值为null。非同步的。 Hashtable与 HashMap类似,不同的是:key和value的值均不允许为null;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。 LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.在遍历的时候会比HashMap慢。key和value均允许为空,非同步的。 最快的遍历方法:Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {    Map.Entry<String, String> entry = iterator.next();    System.out.println(entry.getKey() + " :" + entry.getValue());}//排序(按key排序):Map<String, String> map = new HashMap<String, String>();map.put("a", "c");map.put("b", "b");map.put("c", "a");// 通过ArrayList构造函数把map.entrySet()转换成listList<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());// 通过比较器实现比较排序Collections.sort(list, new Comparator<Map.Entry<String, String>>() {    public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2) {        return mapping1.getKey().compareTo(mapping2.getKey());    }});for (Map.Entry<String, String> mapping : list) {    System.out.println(mapping.getKey() + " :" + mapping.getValue());}//按value排序Map<String, String> map = new TreeMap<String, String>();        map.put("a", "c");        map.put("b", "b");        map.put("c", "a");        // 通过ArrayList构造函数把map.entrySet()转换成list        List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());        // 通过比较器实现比较排序        Collections.sort(list, new Comparator<Map.Entry<String, String>>() {            public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2) {                return mapping1.getValue().compareTo(mapping2.getValue());            }        });        for (String key : map.keySet()) {            System.out.println(key + " :" + map.get(key));        }
0 0