android: java语法1

-------------------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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值