package com.xintu.realm.util;
import android.annotation.SuppressLint;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
/**
* 字符串处理工具类
*
* @author fanjf
*/
@SuppressLint ( { "NewApi", "DefaultLocale", "SimpleDateFormat" } )
public class StringUtil {
/*******************************************
* 身份证验证 start
**************************************************/
final static Map< Integer, String > zoneNum = new HashMap< Integer, String >();
// 第18位校检码
final static int[] PARITYBIT = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
//每位加权因子
final static int[] POWER_LIST = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
/**
* Returns a random String of numbers and letters of the specified length.
* The method uses the Random class that is built-in to Java which is
* suitable for low to medium grade security uses. This means that the
* output is only pseudo random, i.e., each number is mathematically
* generated so is not truly random.
* <p>
* <p>
* For every character in the returned String, there is an equal chance that
* it will be a letter or number. If a letter, there is an equal chance that
* it will be lower or upper case.
* <p>
* <p>
* The specified length must be at least one. If not, the method will return
* null.
*
* @param length the desired length of the random String to return.
* @return a random String of numbers and letters of the specified length.
*/
private static Random randGen = null;
private static Object initLock = new Object();
private static char[] numbersAndLetters = null;
static {
zoneNum.put( 11, "北京" );
zoneNum.put( 12, "天津" );
zoneNum.put( 13, "河北" );
zoneNum.put( 14, "山西" );
zoneNum.put( 15, "内蒙古" );
zoneNum.put( 21, "辽宁" );
zoneNum.put( 22, "吉林" );
zoneNum.put( 23, "黑龙江" );
zoneNum.put( 31, "上海" );
zoneNum.put( 32, "江苏" );
zoneNum.put( 33, "浙江" );
zoneNum.put( 34, "安徽" );
zoneNum.put( 35, "福建" );
zoneNum.put( 36, "江西" );
zoneNum.put( 37, "山东" );
zoneNum.put( 41, "河南" );
zoneNum.put( 42, "湖北" );
zoneNum.put( 43, "湖南" );
zoneNum.put( 44, "广东" );
zoneNum.put( 45, "广西" );
zoneNum.put( 46, "海南" );
zoneNum.put( 50, "重庆" );
zoneNum.put( 51, "四川" );
zoneNum.put( 52, "贵州" );
zoneNum.put( 53, "云南" );
zoneNum.put( 54, "西藏" );
zoneNum.put( 61, "陕西" );
zoneNum.put( 62, "甘肃" );
zoneNum.put( 63, "青海" );
zoneNum.put( 64, "宁夏" );
zoneNum.put( 65, "新疆" );
zoneNum.put( 71, "台湾" );
zoneNum.put( 81, "香港" );
zoneNum.put( 82, "澳门" );
zoneNum.put( 91, "外国" );
}
/**
* 编码方式转成utf-8
*
* @param str
* @return
*/
public static String urlCode ( String str ) {
String ENCODING = "utf-8";
String strCode = str;
try {
strCode = URLEncoder.encode( str, ENCODING );
strCode = strCode.replace( "+", "%20" );
} catch ( UnsupportedEncodingException e ) {
e.printStackTrace();
}
return strCode;
}
/**
* 根据秒数得到“00:00:00”格式的时间
*
* @param time
* @return
*/
public static String secToTime ( int time ) {
String timeStr = null;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
if ( time <= 0 )
return "00:00";
else {
minute = time / 60;
if ( minute < 60 ) {
second = time % 60;
timeStr = unitFormat( minute ) + ":" + unitFormat( second );
} else {
hour = minute / 60;
if ( hour > 24 ) {
day = hour / 24;
minute = minute % 60;
second = time - hour * 3600 - minute * 60;
timeStr = day + "天" + unitFormat( hour / 24 ) + ":" + unitFormat( minute ) + ":" + unitFormat( second );
return timeStr;
}
minute = minute % 60;
second = time - hour * 3600 - minute * 60;
timeStr = unitFormat( hour ) + ":" + unitFormat( minute ) + ":" + unitFormat( second );
}
}
return timeStr;
}
public static String unitFormat ( int i ) {
String retStr = null;
if ( i >= 0 && i < 10 )
retStr = "0" + Integer.toString( i );
else
retStr = "" + i;
return retStr;
}
/**
* 区分两个String
*
* @param value
* @param kw
* @return
*/
public static boolean isHad ( String value, String kw ) {
if ( value.indexOf( kw ) != -1 ) {
return true;
} else {
return false;
}
}
public static boolean isTel ( String tel ) {
String telExp = "^(010|02\\d|0[3-9]\\d{2})?\\d{6,8}$";
Pattern p = Pattern.compile( telExp );
Matcher m = p.matcher( tel );
return m.matches();
}
/**
* 按长度分割字符串
*
* @param content
* @param len
* @return
*/
public static String[] split ( String content, int len ) {
if ( content == null || content.equals( "" ) ) {
return null;
}
int len2 = content.length();
if ( len2 <= len ) {
return new String[]{ content };
} else {
int i = len2 / len + 1;
// System.out.println( "i:" + i );
String[] strA = new String[i];
int j = 0;
int begin = 0;
int end = 0;
while ( j < i ) {
begin = j * len;
end = ( j + 1 ) * len;
if ( end > len2 )
end = len2;
strA[j] = content.substring( begin, end );
// System.out.println(strA[j]+"<br/>");
j = j + 1;
}
return strA;
}
}
public static boolean emailFormat ( String email ) {
boolean tag = true;
final String pattern1 = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
final Pattern pattern = Pattern.compile( pattern1 );
final Matcher mat = pattern.matcher( email );
if ( !mat.find() ) {
tag = false;
}
return tag;
}
/**
* 验证是不是EMAIL
*
* @param email
* @return
*/
public static boolean isEmail ( String email ) {
boolean retval = false;
if ( StringUtil.empty( email ) )
return retval;
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile( check );
Matcher matcher = regex.matcher( email );
retval = matcher.matches();
return retval;
}
/**
*
没有合适的资源?快使用搜索试试~ 我知道了~
Realm数据库操作,版本更新(数据迁移)及自定义使用
共47个文件
xml:16个
java:10个
png:10个
4星 · 超过85%的资源 需积分: 50 33 下载量 135 浏览量
2018-05-14
12:09:10
上传
评论 2
收藏 157KB ZIP 举报
温馨提示
1.Realm数据库在Android中的基本操作-增删改查 2.Android Realm数据库的逻辑封装,有需要的直接下载拿去使用。 3.部分代码,请查看:https://blog.csdn.net/qq_24580361/article/details/80303557
资源推荐
资源详情
资源评论
收起资源包目录
realm-master.zip (47个子文件)
realm-master
gradlew.bat 2KB
gradlew 5KB
gradle.properties 849B
app
proguard-rules.pro 751B
src
test
java
com
xintu
realm
ExampleUnitTest.java 397B
androidTest
java
com
xintu
realm
ExampleInstrumentedTest.java 738B
main
res
mipmap-xxxhdpi
ic_launcher.png 9KB
ic_launcher_round.png 15KB
drawable
ic_launcher_background.xml 5KB
mipmap-hdpi
ic_launcher.png 3KB
ic_launcher_round.png 5KB
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 208B
strings.xml 74B
styles.xml 383B
mipmap-xxhdpi
ic_launcher.png 6KB
ic_launcher_round.png 10KB
mipmap-mdpi
ic_launcher.png 2KB
ic_launcher_round.png 3KB
mipmap-xhdpi
ic_launcher.png 4KB
ic_launcher_round.png 7KB
mipmap-anydpi-v26
ic_launcher_round.xml 270B
ic_launcher.xml 270B
layout
item_sq_lite.xml 848B
activity_realm.xml 897B
java
com
xintu
realm
RealmActivity.java 7KB
LocationApplication.java 886B
adapter
ViewHolder.java 3KB
CommonAdapter.java 6KB
entity
Title.java 845B
CmlUser.java 3KB
util
StringUtil.java 57KB
DBUtil.java 9KB
AndroidManifest.xml 758B
.gitignore 7B
build.gradle 1KB
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 230B
.idea
gradle.xml 626B
runConfigurations.xml 564B
misc.xml 6KB
vcs.xml 180B
modules.xml 347B
dictionaries
fanjianfeng.xml 90B
.gitignore 118B
settings.gradle 15B
build.gradle 592B
共 47 条
- 1
资源评论
- 凉亭下2020-02-05android 数据库框架
风中De枫叶
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ASP音像销售系统的设计与实现(源代码+论文).rar
- C1.cpp
- 网页设计-仿淘宝网站Web前端大作业报告书
- [论坛社区]MyForum v1.1_myforum11.rar
- 没东西蹭你非要蹭桌角.zip
- okx-android.apk
- myeclipse-ci-2018.12.0-online-installer-windows.rar
- 量程自动切换数字电压表proteus仿真+程序资料_51单片机(论文+开题报告+源代码+详解图).zip
- Q-learning for optimal tracking control
- 自然语言处理NLPPytorchLSTM-GCN图卷积火车票识别源码和视频1G
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功