大杂烩.

1.如何在java中搞笑的判断数组中是否包含某个元素
   参考:   http://www.importnew.com/18700.html  写的很好
   1)使用List
      
    public static boolean useList(String[] arr, String targetValue) {
    return Arrays.asList(arr).contains(targetValue);
    }
  2)使用set
public static boolean useSet(String[] arr, String targetValue) {
    Set<String> set = new HashSet<String>(Arrays.asList(arr));
    return set.contains(targetValue);
}


    3)使用循环
      
   public static boolean useLoop(String[] arr, String targetValue) {
    for(String s: arr){
        if(s.equals(targetValue))
            return true;
    }
    return false;
}
     4) ArrrayUtils
    import org.apache.commons.lang3.ArrayUtils;
      public static boolean useArrayUtils(String[] arr, String targetValue) {
       return ArrayUtils.contains(arr,targetValue);
    }
   所以,相比较之下,我更倾向于使用ArrayUtils工具类来进行一些合数祖相关的操作。毕竟他可以让我少写很多代码(因为自己写代码难免有Bug,毕竟apache提供的开源工具类库都是经过无数开发者考验过的),而且,效率上也并不低太多。
2.  如果有个类似  它也就是个字符串数组
      在java中可以通过(java.util.Arrays.toString(a)) 
       String sss[] = {"dsds","ewew","gfgfd"};
System.out.println(Arrays.toString(sss));
        结果为:[dsds, ewew, gfgfd]
3.   java竖线分割字符串的问题
     参考:  http://www.cnblogs.com/haitao-fan/archive/2013/01/27/2878537.html
        例1:
 String[] paraStr = "6010;320100;A".split(";");
 System.out.println(Arrays.toString(paraStr));
输出:[6010, 320100, A]

Ok

例2:
 String[] paraStr = "6010|320100|A".split("|");
 System.out.println(Arrays.toString(paraStr));
输出:[, 6, 0, 1, 0, |, 3, 2, 0, 1, 0, 0, |, A]
NO,和期望值相差甚远
例3:
 String[] paraStr = "6010+320100+A".split("+");
 System.out.println(Arrays.toString(paraStr));
输出:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+异常!

有现象,才能总结出结论:

使用String.split方法时要注意的问题 
 在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex)
Splits this string around matches of the given regular expression. 
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果:
1.用竖线 | 分隔字符串,你将得不到预期的结果。
2.用 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。

显然,| + * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的字符串结果。
"|" 分隔串时虽然能够执行,但是却不是预期的目的,得到的是每个字符的分割,而不是字符串,"\\|"转义后即可得到正确的字符串结果。
还有如果想在串中使用"\"字符,则也需要转义.首先要表达"a\b"这个串就应该用"a\\b",如果要分隔就应该这样才能得到正确结果:
String[] aa = "aaa\\bbb\\bccc".split("\\\\");

注意:除了使用“\\|”外,也可以用"[.]" 进行分隔!
如:
String[] paraStr = "6010|320100|A".split("[|]");
String[] paraStr = "6010.320100.A".split("[.]");
4.jsonarray的应用
   转载:  http://blog.csdn.net/lisheng19870305/article/details/8204337
    
 /** 
  * 将json数组转化为String型 
  * @param str 
  * @return 
  */  
 public static String[] getJsonToStringArray(String str) {  
      JSONArray jsonArray = JSONArray.fromObject(str);  
      String[] arr=new String[jsonArray.size()];  
      for(int i=0;i<jsonArray.size();i++){  
          arr[i]=jsonArray.getString(i);  
          System.out.println(arr[i]);  
      }  
      return arr;  
}  
5.
1.字符串转日期 
 2008-07-10 19:20:00 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );
2.日期转字符串 
  假如把今天的日期转成字符串可用 String str = sdf.format(new Date());
  这个字符串内容的格式类似2008-07-10 19:20:00。
  透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期输出成2008年7月10日,我  们可以这么写:
    SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy年MM月dd日 " );
   String str = sdf.format(new Date());
   str便会依照我们设定的格式输出了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值