-------------------java语法-------------------------------------------------------
1、编码转换,byte 2 string, 函数是否能改值.
private void tt1()
{
byte buff[]=new byte[50];
buff[0]='a';
buff[1]='b';
buff[2]='C';
buff[3]='d';
buff[4]='F';
buff[5]=0;
buff[6]=0;
int n=99;
int iArr[]=new int[5];
iArr[0]=1;
iArr[1]=2;
iArr[2]=3;
iArr[3]=4;
iArr[4]=5;
String str="中国人abCdf";
sss(buff,n,iArr);//看值会不会改变
Log.d("AAA","1:"+str+" n= "+n+" iArr1="+iArr[1]); //Integer.toString(i) / ""+i //String.valueOf(i)
//结果是:1:中国人abCdf n= 99 iArr1=6
Log.d("AAA","2:"+EncodingUtils.getAsciiString(buff, 0, 5));
buff=str.getBytes();
int len=str.length();
Log.d("AAA","3:"+EncodingUtils.getString(buff, "UTF-8"));
}
private void sss(byte[] b,int n,int[] iArr){//查看传值,值会不改变.怎么数组就会改变,单个值不会变?
b[1]='X';//这个改变了
b[2]='Z';//这个改变了
b[3]='0';//这个改变了
n=77; //这个没有效果
iArr[1]=6; //这个改变了
iArr[2]=7; //这个改变了
}
2、字符串相同
String str="123456";
String strP="123456";
if (str.equals(strP)) //str.equalsIgnoreCase()不区分大小写 // if (str.trim().toString().equals("")){
{
//相同
}
str.startsWith("/data/") //包含
str.contains("/mnt/") //包含
if(".png".equalsIgnoreCase(ExtName)){ //不区分大小写.
2、
包含:(str.toLowerCase().contains("</SUCCESS>".toLowerCase()))
str.contains("")
3、byte <--> String
byte[] bytes=new byte[20];
//String s = EncodingUtils.getString(str.getBytes("gb2312"), "utf8");
String str=EncodingUtils.getAsciiString(bytes, 0, 5);//byte --> String // EncodingUtils.getString(bytes, 0, 5, "UTF-8") //"ANSI"
bytes=str.getBytes(); // String --> byte
int len=str.length();
4、分割字符串.
String[] strList;
strList = str.split("\\{"); //注意 { 等符号要用两个\来转义
strList[0]...[strList.length-1]
5、取R.string值
this.getResources().getString(R.string.strName)
6、
//获取编译日期、时间
sprintf(szTmpDate,"%s",__DATE__); //"Sep 18 2010"
sprintf(szTmpTime,"%s",__TIME__); //"10:59:19"
7、查找,截取
comDir=path.substring(0, path.lastIndexOf("/"));
8、格式化
System.out.println(String.format("%1$,09d", -3123));
System.out.println(String.format("%1$9d", -31));
System.out.println(String.format("%1$-9d", -31));
System.out.println(String.format("%1$(9d", -31));
System.out.println(String.format("%1$#9x", 5689));
---------------------字符串操作------------------------------------------------------------
1、boolean is=str.contains("abc");是否存在abc字串, 是返回ture,否则false;
2、int result=s.indexOf("abc");是否存在abc,返回位置值. >0
2、正则表达式查找
str = PatternMatcher(strAll, "<x>(.*?)</x>");// 正则表达式配置<x>与<x/>之间的内容
private String PatternMatcher(String str, String key) {
String regexp = key;// 正则表达式配置<title>与<title/>之间的内容
Pattern p = Pattern.compile(regexp);
Matcher m = p.matcher(str);
if (m.find()) {
return m.group(1);
}
return "";
}
-----------------------文件操作-----------------------------------------------
1、File操作
File f;
f = this.getCacheDir(); //取得目前Cache目录
log2d("Cache:"+f.getPath());// Cache:/data/data/com.a.my1/cache
f = this.getFilesDir(); //取得目前File目录
log2d("File:"+f.getPath());// File:/data/data/com.a.my1/files
f.xxx好多属性.
3、文件读写 FileOutputStream /FileInputStream
// eg: DataBuff=str.getBytes(); fs_write(strFileName, true, DataBuff, 2,
// str.length()-2);//条件str>2;
private static int fs_write(String fileName, boolean append, byte[] bytes,int bytesOffset, int count) {
int ret = 0;
try {
log2d("[fs_write] --1 (" + fileName + "),offset(" + bytesOffsets+ "),count(" + count + ")");
FileOutputStream fout;
fout= new FileOutputStream(fileName,append);//FileOutputStream(String name, boolean append)
log2d("[fs_write] --2");
fout.write(bytes, bytesOffset, count);
log2d("[fs_write] --3");
fout.close();
log2d("[fs_write] --4");
} catch (Exception e) {
e.printStackTrace();
ret = -1;
}
return ret;
}
public static int fs_read(String fileName, byte[] bytes, int byteOffset,int count) {
int ret = 0;
try {
log2d("[fs_read] --1 (" + fileName + "),byteOffset(" + byteOffset+ "),count(" + count + ")");
FileInputStream fin = new FileInputStream(fileName);
int len = fin.available();
if (count > 0) {
if (len < byteOffset) {
fin.close();
ret = -1;
return ret;
}
// byte[] buffer = new byte[byteLength];
if (count >= len - byteOffset)
count = len - byteOffset;
fin.read(bytes, byteOffset, count);
} else {
fin.read(bytes);
}
ret = len;
// text = EncodingUtils.getAsciiString(buffer);
fin.close();
} catch (Exception e) {
// e.printStackTrace();
ret = -2;
}
return ret;
}
public static int fs_getSize(String fileName) {
int ret = 0;
try {
FileInputStream fin = new FileInputStream(fileName);
int len = fin.available();
// text = EncodingUtils.getAsciiString(buffer);
fin.close();
ret = len;
} catch (Exception e) {
// e.printStackTrace();
ret = -2;
}
return ret;
}
3、文件长度格式化
private String size2string(long size){
DecimalFormat df = new DecimalFormat("0.00");
String mysize = "";
if( size > 1024*1024){
mysize = df.format( size / 1024f / 1024f ) +"M";
}else if( size > 1024 ){
mysize = df.format( size / 1024f ) +"K";
}else{
mysize = size + "B";
}
return mysize;
}
4、
/**
* 获取SD卡根目录
*
* @return
*/
public String getSDPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
}
return sdDir.toString();
}
-------------------Interface回调函数--------------------------------------
Caller.java
interface ICallInterface
{
public void callBack();
}
public class Caller
{
public ICallInterface icallback;
public void setCallBack(ICallInterface cb)
{
this.icallback= cb;
}
public void call(){
this.icallback.callBack();
}
}
myDemo.java
public void test(){
Caller demo = new Caller();
demo.setCallBack(new ICallInterface(){
@Override
public void callBack() {
// TODO Auto-generated method stub
xLog.d("call to what????");
}
});
demo.call();
}