java 字符串解析(转自:http://bbs.csdn.net/topics/360128430)-程序员宅基地

技术标签: 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 之外,它返回与 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);
	}
}



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wmyasw/article/details/8621924

智能推荐

Nginx配置-程序员宅基地

文章浏览阅读4.4w次,点赞38次,收藏344次。Nginx配置一、nginx常用配置命令二、nginx配置文件(一)、第一部分:全局块(二)、第二部分:events块(三)、第三部分:http块1、http全局块2、server块三级目录一、nginx常用配置命令配置命令路径/usr/local/nginx/sbin查看nginx版本./nginx -v停止nginx服务./nginx -s stop启动nginx服务./nginx重新加载nginx,适用于当nginx.conf配置文件修改后,使用下面命令可以使得配置文件生效_nginx配置

使用VS2017编译Boost库(MSVC)_vs2017 msvc-程序员宅基地

文章浏览阅读3.4k次,点赞4次,收藏16次。1、首先得拿到VS2017,Boost,下载链接:Visual Studio Community 2017:http://xz.cncrk.com:8080/soft/keygen/visual studio 2017.rarboost_1_71_0.zip:https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_..._vs2017 msvc

前端技术搭建飞机大战小游戏(内含源码)_前端小游戏代码-程序员宅基地

文章浏览阅读7.7w次,点赞177次,收藏116次。上周我们实通过前端基础实现了弹珠游戏,当然很多伙伴再评论区提出了想法,后续我们会考虑实现的,今天还是继续按照我们原定的节奏来带领大家完成一个飞机大战游戏,功能也比较简单简单,也是想借助这样一个简单的功能,然后来帮助大家了解我们JavaScript在前端中的作用, 在前面的文章当中我们也提及到我们在本系列的专栏是循序渐进从简单到复杂的过程,后续会带领大家用前端实现翻卡片、扫雷、贪吃蛇等有趣的小游戏,纯前端语言实现,都会陆续带给大家。欢迎大家订阅我们这份前端小游戏的专栏。_前端小游戏代码

抖音引流跳转到微信加好友?免费教你创建一个链接!_抖音跳转加微信程序源码-程序员宅基地

文章浏览阅读770次,点赞9次,收藏8次。为了降低大家的门槛,可以使用开源的【引流宝】快速创建一个链接,这个链接生成的二维码,用抖音扫码,然后分享出去就是一张卡片,点击卡片就跳转到微信。在抖音想要跳转到微信,现在常规的做法就是通过微信小程序的Url Scheme跳转到微信并打开小程序指定的页面,这个已经有非常成熟的方案。你可以下载这个开源软件的代码,自行搭建引流宝系统,然后创建抖音跳转到微信的卡片即可。_抖音跳转加微信程序源码

spring基本bean注入方法配置_"<ref bean=\"c1\"/>"-程序员宅基地

文章浏览阅读316次。spring基本bean注入方法配置_""

Lua 入门_lua_setupvalue-程序员宅基地

文章浏览阅读1.4k次。此篇文章所有操作都是基于上一篇安装的docker容器内进行操作案例来自于菜鸟教程首先进入容器安装vimapk add vimLua 变量变量就是给一块内存区域赋予一个值。使得程序可以读取和修改相应内存中内容。变量由字母、数字、下划线组成。必须以字母或下划线开头。Lua 是大小写敏感的。变量分为全局变量和局部变量type variable_listlocal a, b = 1, 10 --局部变量c, d = 2, 20 -- 全局变量如果变量只定义了没有初始化_lua_setupvalue

随便推点

[ 移植 ] ___ Library : Xml2_libxml2_library-程序员宅基地

文章浏览阅读1.2k次。[ 移植 ] ___ Library : LibXml2简介下载配置安装整合查看资料简介是在MIT许可下提供的免费软件;为Gnome项目开发的XML C解析器和工具包;(但可在Gnome平台之外使用)尽管该库是用C编写的,但各种语言绑定使其在其他环境中可用;是一种用于设计标记语言的元语言,即是用尖括号之间的额外标记信息将语义和结构添加到内容中的文本语言。下载LibXml2最新的源码包可以从官方发布的页面下载配置创建安装目录并安装依赖包localhost@linux:~$ m_libxml2_library

C++ 之 C++ 操作 json 文件(C++读写json文件)及jsoncpp配置详解_c++ json-程序员宅基地

文章浏览阅读10w+次,点赞190次,收藏1k次。目录前言一、json文件简介1、json文件2、json与其他存储数据方式比较二、C++操作json文件1、jsoncpp 库下载2、C++从字符串中读取json3、C++从文件中读取json4、C++写入json文件5、主函数附:jsoncpp库配置1、解压并转移2、配置属性3、配置项目前言json文件是比较轻量级的文件,格式简单..._c++ json

如何完美的转载其他博主的博文_如何转载博文-程序员宅基地

文章介绍了如何完美地转载其他博主的博文,提到了使用Markdown编辑器直接粘贴HTML内容,并鼓励读者积极转载。

[SwiftUI 开发] 显式动画和隐式动画_swiftui 眼镜动画-程序员宅基地

文章浏览阅读760次。SwiftUI 动画分为显式动画和隐式动画_swiftui 眼镜动画

【视频异常检测】用于无监督视频异常检测的合成伪异常:一种简单有效的基于掩码自动编码器的框架 论文阅读_synthetic pseudo anomalies for unsupervised video -程序员宅基地

文章浏览阅读1.4k次,点赞17次,收藏25次。由于用于训练的异常样本的可用性有限,视频异常检测通常被视为一类分类问题。许多流行的方法研究自动编码器(AE)在假设AE重建正常数据良好而重建异常较差的情况下产生的重建差异。然而,即使只有正常的数据训练,AE通常也能很好地重建异常,这会耗尽其异常检测性能。为了缓解这个问题,我们提出了一个简单而有效的视频异常检测框架。引入了伪异常样本,该样本通过嵌入随机掩码而仅从正常数据合成,而无需额外的数据处理。我们还提出了一种正态一致性训练策略,鼓励AE更好地从正态和相应的伪异常数据中学习规则知识。_synthetic pseudo anomalies for unsupervised video anomaly detect

加载sklearn加州房价数据集出错 housing = fetch_california_housing() HTTPError: HTTP Error 403: Forbidden解决方案_fetch_california_housing 403-程序员宅基地

文章浏览阅读7.9w次,点赞13次,收藏15次。本文主要介绍了加载sklearn加利福尼亚州房价数据集出错 HTTPError: HTTP Error 403: Forbidden的解决方案,希望能对新手有所帮助。文章目录1. 问题描述2. 解决方案_fetch_california_housing 403

推荐文章

热门文章

相关标签