zoukankan      html  css  js  c++  java
  • java实现 字符串解析

      1. [代码]java实现 字符串解析

      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 之外,广州java培训它返回与 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);

      }

      }

     

  • 相关阅读:
    C#基础视频教程5.3 如何编写简单的超级热键
    spring boot中注入jpa时报could not autowire.No beans of 'PersonRepository' type found
    SpringBoot中常用注解@Controller/@RestController/@RequestMapping的区别
    idea如何搭建springboot框架
    Fiddler建好代理后,能连到手机,但手机不能上网了是什么原因
    如何用Fiddler对Android应用进行抓包
    【fiddler】抓取https数据失败,全部显示“Tunnel to......443”
    将excel的数据导入到数据库后都乱码了是怎么回事
    java保存繁体字到数据库时就报错Incorrect string value: 'xF0xA6x8Dx8BxE5xA4...' for column 'name' at row 1
    将爬取的网页数据保存到数据库时报错不能提交JPA,Caused by: java.sql.SQLException: Incorrect string value: 'xF0x9Fx98xB6 xE2...' for column 'content' at row 1
  • 原文地址:https://www.cnblogs.com/gojava/p/3522480.html
Copyright © 2011-2022 走看看