yooli88

2011年1月31日 #

java 字符串解析 转至csdn的afgasdg

StringTokenizer tokenizer = new StringTokenizer(number, ",");
       
boolean bool = true;
       
while (tokenizer.hasMoreTokens()) {
           
try {
                Double.valueOf(tokenizer.nextToken());
            }
catch (Exception e) {
                bool
= false;
            }
        }
//将字符串转化为数组的方法
int gv[];
  
int i = 0;
   StringTokenizer tokenizer
= new StringTokenizer(goodsVolume, ",, ");
         gv
= new int[tokenizer.countTokens()];//动态的决定数组的长度
     while (tokenizer.hasMoreTokens()) {
        String d
= tokenizer.nextToken();
        gv[i]
= Integer.valueOf(d);//将字符串转换为整型
        i++;
    }

//字符串解析
    private String[] stringAnalytical(String str, String divisionChar) {
        String string[];
      
int i = 0;
        StringTokenizer tokenizer
= new StringTokenizer(str, divisionChar);
        string
= new String[tokenizer.countTokens()];// 动态的决定数组的长度
         while (tokenizer.hasMoreTokens()) {
            string[i]
= new String();
            string[i]
= tokenizer.nextToken();
            i
++;
        }
       
return string;// 返回字符串数组
    }

int countTokens()
          计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。
boolean hasMoreElements()
          返回与 hasMoreTokens 方法相同的值。
boolean hasMoreTokens()
          测试此 tokenizer 的字符串中是否还有更多的可用标记。
Object nextElement()
          除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法相同的值。
String nextToken()
          返回此 string tokenizer 的下一个标记。
String nextToken(String delim)
          返回此 string tokenizer 的字符串中的下一个标记。




public class StringAnalytical {

   
// 字符串解析,将字符串转根据分割符换成字符串数组
    private String[] stringAnalytical(String string, char c) {
       
int i = 0;
       
int count = 0;

       
if (string.indexOf(c) == -1)
           
return new String[] { string };// 如果不含分割符则返回字符本身
        char[] cs = string.toCharArray();
       
int length = cs.length;
       
for (i = 1; i < length - 1; i++) {// 过滤掉第一个和最后一个是分隔符的情况
            if (cs[i] == c) {
                count
++;// 得到分隔符的个数
            }
        }
        String[] strArray
= new String[count + 1];
       
int k = 0, j = 0;
        String str
= string;
       
if ((k = str.indexOf(c)) == 0)// 去掉第一个字符是分隔符的情况
            str = str.substring(k + 1);
       
if (str.indexOf(c) == -1)// 检测是否含分隔符,如果不含则返回字符串
            return new String[] { str };
       
while ((k = str.indexOf(c)) != -1) {// 字符串含分割符的时候
            strArray[j++] = str.substring(0, k);
            str
= str.substring(k + 1);
           
if ((k = str.indexOf(c)) == -1 && str.length() > 0)
                strArray[j
++] = str.substring(0);
        }
       
return strArray;
    }

   
public void printString(String[] s) {
        System.out.println(
"*********************************");
       
for (String str : s)
            System.out.println(str);
    }

   
public static void main(String[] args) {
        String[] str
= null;
        StringAnalytical string
= new StringAnalytical();
        str
= string.stringAnalytical("1aaa", '@');
        string.printString(str);
        str
= string.stringAnalytical("2aaa@", '@');
        string.printString(str);
        str
= string.stringAnalytical("@3aaa", '@');
        string.printString(str);
        str
= string.stringAnalytical("4aaa@bbb", '@');
        string.printString(str);
        str
= string.stringAnalytical("@5aaa@bbb", '@');
        string.printString(str);
        str
= string.stringAnalytical("6aaa@bbb@", '@');
        string.printString(str);
        str
= string.stringAnalytical("@7aaa@", '@');
        string.printString(str);
        str
= string.stringAnalytical("@8aaa@bbb@", '@');
        string.printString(str);
        str
= string.stringAnalytical("@9aaa@bbb@ccc", '@');
        string.printString(str);
        str
= string.stringAnalytical("@10aaa@bbb@ccc@eee", '@');
        string.printString(str);
    }
}

posted @ 2011-04-06 18:54 迷茫在java的世界里 阅读(358) | 评论 (0)编辑 收藏

java日期处理bean 转至csdn的afgasdg

     摘要: import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.regex.Pattern; import o...  阅读全文

posted @ 2011-04-06 18:52 迷茫在java的世界里 阅读(197) | 评论 (0)编辑 收藏

从 csdn看到的一些很有用的代码 灰常感谢afgasdg了 转帖请注明afgasdg

java访问xml文件
Java code

import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class xmljava
{

public static void main(String args[])
    {   
          Element element
=null;
          File f
=new File("a.xml");
          DocumentBuilder db
=null;        //documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
          DocumentBuilderFactory dbf=null;
     
try{
        
          dbf
= DocumentBuilderFactory.newInstance(); //返回documentBuilderFactory对象  
          db =dbf.newDocumentBuilder();//返回db对象用documentBuilderFatory对象获得返回documentBuildr对象

          Document dt
= db.parse(f); //得到一个DOM并返回给document对象
          element = dt.getDocumentElement();//得到一个elment根元素
         
          System.out.println(
"根元素:"+element.getNodeName()); //获得根节点

        NodeList childNodes
=element.getChildNodes() ;    // 获得根元素下的子节点
   
     
for (int i = 0; i < childNodes.getLength(); i++)     // 遍历这些子节点

   {      
       Node node1
= childNodes.item(i); // childNodes.item(i); 获得每个对应位置i的结点

    
if ("Account".equals(node1.getNodeName()))
      {
                       
// 如果节点的名称为"Account",则输出Account元素属性type
      System.out.println("\r\n找到一篇账号. 所属区域: "   + node1.getAttributes().getNamedItem        ("type").getNodeValue() + ". ");
      NodeList nodeDetail
= node1.getChildNodes();   // 获得<Accounts>下的节点
      for (int j = 0; j < nodeDetail.getLength(); j++)
       {  
// 遍历<Accounts>下的节点
          Node detail = nodeDetail.item(j);    // 获得<Accounts>元素每一个节点
            if ("code".equals(detail.getNodeName()))   // 输出code
            System.out.println("卡号: " + detail.getTextContent());
            
else if ("pass".equals(detail.getNodeName())) // 输出pass
                System.out.println("密码: " + detail.getTextContent());
            
else if ("name".equals(detail.getNodeName())) // 输出name
                System.out.println("姓名: " + detail.getTextContent());
            
else if ("money".equals(detail.getNodeName())) // 输出money
                 System.out.println("余额: "+ detail.getTextContent());
     
        }
      }

    }
}

catch(Exception e){System.out.println(e);}
   
}
}


XML code
<?xml version="1.0" encoding="gbk"?> <Accounts> <Account type="by0003"> <code>100001</code> <pass>123</pass> <name>李四</name> <money>1000000.00</money> </Account> <Account type="hz0001"> <code>100002</code> <pass>123</pass> <name>张三</name> <money>1000.00</money> </Account> </Accounts>

posted @ 2011-04-06 18:49 迷茫在java的世界里 阅读(180) | 评论 (0)编辑 收藏

[转帖]在数组里随机取不重复的数

方法没有确认
import java.util.*;
public class Lottery {

    public static void main(String[] args) {
        int[] data1 = {3, 5, 6, 8, 9, 15, 18, 24, 27, 30, 32};
        Random r = new Random();
        int irdm = 0;
        for(int i = 0; i < 7; i ++) {
            irdm = r.nextInt(11 - i);
            System.out.println(data1[irdm]);
            for(int j = irdm; j < 11 - i - 1; j ++) {
                data1[j] = data1[j + 1];
            }
        }
    }
}
方法没有确认不知道是否可行public class AAAAA {
        public static void main(String[] args) {

                int i = 0;
                int j = 0;
                int[] temp = new int[20];
                for (j = 0; j < temp.length; j++) {
                        temp[j] = Math.random() * 100  + 1;
                        System.out.print(temp[j] + ",";
                }
                
                HashSet hh = new HashSet();
                while (hh.size() < 7) {
                        int aa = (int) (Math.random() * 100 + 1);
                        hh.add(aa);
                }
                System.out.println(hh.size());
                Iterator ii = hh.iterator();
                while (ii.hasNext()) {
                        System.out.print(ii.next() + ",";
                }
        }

}

java从指定数组中取不重复的7个随机数

如何用java从指定数组中取不重复的7个随机数,以下是我写的代码,但是是有重复的,哪位大侠赐教一下如何使用Random类的种子,帮我实现不重复的随机数。。。
import java.util.*;
public class Lottery {

    public static void main(String[] args)
    {
        int[] data1 = {3,5,6,8,9,15,18,24,27,30,32};
        Random   r=new   Random();
        StringBuffer   str1=new   StringBuffer();
        for(int   i=0;i<6;i++)
        {
        str1.append(data1[r.nextInt(11)]);
         }
         System.out.println(str1);
   }
}

posted @ 2011-01-31 16:57 迷茫在java的世界里 阅读(434) | 评论 (0)编辑 收藏