`
musicbox95351
  • 浏览: 229349 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

格式转换时FieldPosition 和 ParsePosition的应用示例

    博客分类:
  • java
 
阅读更多
package net.zcmusicbox.yeah.test.text.format;

import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.NumberFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SetEndIndex {
	public static void main(String args[]) throws Exception {
		NumberFormat numForm = NumberFormat.getInstance();
		StringBuffer dest1 = new StringBuffer();
		FieldPosition pos = new FieldPosition(NumberFormat.INTEGER_FIELD);
		BigDecimal bd1 = new BigDecimal(2.342323232323D);
		dest1 = numForm.format(bd1, dest1, pos);
		System.out.println("dest1 = " + dest1);
		System.out.println("INTEGER portion is at: " + pos.getBeginIndex() + ", " + pos.getEndIndex());
		pos = new FieldPosition(NumberFormat.FRACTION_FIELD);
		StringBuffer dest2 = new StringBuffer();
		dest2 = numForm.format(bd1, dest2, pos);
		System.out.println("dest2 = " + dest2);
		System.out.println("FRACTION portion is at: " + pos.getBeginIndex() + ", " + pos.getEndIndex());

		DateFormat df = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
		StringBuffer dest3 = new StringBuffer();
		//关注的是几号
		pos = new FieldPosition(DateFormat.DATE_FIELD);
		dest3 = df.format(new Date(), dest3, pos);
		System.out.println("dest3 = " + dest3);
		//结果当前时间为2012年6月27日 下午04时06分56秒  则beginIndex为7 endIndex为9
		System.out.println("FRACTION portion is at: " + pos.getBeginIndex() + ", " + pos.getEndIndex());

		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		String input[] = { "abc 2013-10-01 Vancouver, B.C.", "1248-03-01 Ottawa, ON", "1323-06-06 Toronto, ON" };
		for (int i = 0; i < input.length; i++) {
			ParsePosition pp = new ParsePosition(4);//从第四位开始处理
			Date d = formatter.parse(input[i], pp);
			if (d == null) {
				//结果只处理了"abc 2013-10-01 Vancouver, B.C." 
				//"1248-03-01 Ottawa, ON"从第四位开始是"8-03-01 Ottawa, ON"无法转换
				System.err.println("Invalid date in " + input[i]);
				continue;
			}
			//成功转换后ParsePosition.getIndex()就是匹配的字符串结尾的索引
			String location = input[i].substring(pp.getIndex());
			System.out.println(" on " + d + " in " + location);

		}
	}
}

分享到:
评论

相关推荐

    Sql日期时间格式转换

    以下是一些使用`CONVERT`函数进行日期时间格式转换的具体示例: ```sql -- 显示当前时间按Style 20格式化 SELECT CONVERT(varchar(100), GETDATE(), 20); -- 显示当前时间按Style 23格式化 SELECT CONVERT(varchar...

    C#winForm实现对视频格式转换

    在本文中,我们将深入探讨如何使用C# WinForm应用程序实现视频格式转换,主要目标是将视频文件转换为FLV、MP4和3GP等常见格式,并支持批量转换以及视频截图功能。C#作为.NET框架的一部分,提供了丰富的库和API,使得...

    lame音频格式转换

    LAME音频格式转换涉及到音频编码的基本概念,包括音频文件格式、编码器的选择和参数设置。在Java编程环境中,利用LAME的Java接口可以方便地集成到自己的应用程序中,实现音频处理的自动化。了解并熟练掌握这些知识,...

    STC12C5A60S2_AD转换12864显示示例程序

    这是一篇关于STC12C5A60S2微控制器的AD转换和12864显示示例程序的知识点总结。 1. 微控制器简介 STC12C5A60S2是一款8位微控制器,由STC公司生产。它具有强大的处理能力和丰富的外设资源,广泛应用于工业控制、自动...

    SVG转EMF的示例代码

    本示例代码是关于如何使用Java将SVG转换为EMF,这在需要在Windows系统中处理矢量图形时非常有用,因为EMF是Windows系统广泛支持的格式。 SVG是一种基于XML的开放标准,用于描述2D图形。它支持复杂的形状、路径、...

    java实现Xml与json之间的相互转换操作示例

    在Web开发中,我们经常需要在前后端之间进行数据的交换,由于后端和前端使用的数据格式可能不同,这时候就需要实现数据格式的转换,尤其是在使用Java作为后端开发语言时,如何将Java对象转换为xml和json,以及如何将...

    VTK应用示例之VTK与Qt整合的示例

    在本示例中,我们将探讨如何将VTK嵌入到Qt应用中,以实现数据的动态渲染和用户交互。首先,你需要确保已经安装了VTK、Qt和CMake这三个关键工具。CMake是一个构建系统,用于管理跨平台的编译过程,它会帮助我们构建和...

    ASP.NET 利用ffmpeg.exe进行音频格式转换

    注意,使用`ffmpeg`进行格式转换时,要确保你有处理所有相关格式的权限。不同的音频格式可能需要不同的编解码器,这些编解码器可能需要单独安装或者在`ffmpeg`编译时包含进去。 在实际应用中,你可能还需要处理错误...

    Java处理Webp图片格式转换的示例代码

    示例代码部分提供了完整的Java处理Webp图片格式转换的示例代码,包括Webp编码和Webp解码两部分,读者可以根据这些代码来实现Java环境中的Webp图片格式转换。 本文提供了Java处理Webp图片格式转换的完整示例代码,...

    JAVA ImageJ 支持图片格式转换,图片放大缩小等,功能非常强大,缩略图高清晰,有实例代码

    - **格式转换**:ImageJ支持多种图像格式的读取和写入,如TIFF、JPEG、BMP、PNG等,这使得它在处理不同来源的图片时具有极高的灵活性。 - **图片放大缩小**:ImageJ可以对图片进行无损或有损的缩放,通过插值算法...

    ATmega8 示例程序

    这款芯片在嵌入式系统设计领域广泛应用,因其低功耗、丰富的外设接口和相对较低的成本而备受青睐。在这个"ATmega8 示例程序"的压缩包中,你将找到一系列关于如何使用ATmega8进行各种基础应用的实例代码。 1. **I/O...

    mdwebhook, 使用webhooks将 Markdown 文件转换为HTML的示例应用程序.zip

    mdwebhook, 使用webhooks将 Markdown 文件转换为HTML的示例应用程序 Markdown Webhook这个简单的示例应用程序使用webhooks来得到Dropbox中新 Markdown 文件的通知。 然后它将所有的Markdown 文件转换为 HTML 。阅读...

    java传真tif格式转换资料

    在这个“java传真tif格式转换资料”压缩包中,包含了一个Word文档和两个JAR文件。这个Word文档很可能是关于Java Advanced Imaging (JAI) API的英文版API参考,JAI是Oracle提供的一个用于处理图像的库,它提供了高级...

    使用GDAL中OGR实现空间数据格式转换

    GDAL/OGR是非常著名的开源GIS库,GDAL是对栅格数据进行操作,而OGR是对矢量数据进行操作,它们相当于一个通用数据访问库。甚至ESRI的产品中都用了此库。... 本资源是使用GDAL中OGR实现空间数据格式转换的例子。

    oracle11中to-date详细用法示例(oracle日期格式转换).pdf

    ..oracle11中to_date详细用法示例(oracle日期格式转换).pdf

    TDC-GP22-激光测距仪应用指南及示例代码.pdf

    TDC-GP22激光测距仪应用指南内容涵盖了激光测距技术的原理、TDC-GP22时间数字转换器的性能参数以及该芯片在激光测距仪中的应用方法和示例代码。该应用指南适用于对TDC-GP22时间数字转换器和基于其的激光测距仪感兴趣...

    欧姆龙PLC模拟量转换示例讲解

    欧姆龙PLC提供了内置的转换函数,如DTCNV(数字转换)和ADTCNV(A/D转换)。使用这些函数,我们可以方便地完成从模拟量到数字量,或者从数字量到模拟量的转换。在编写程序时,需要注意设置正确的转换参数,确保数据...

    个人AI助理,音频实时监听,GPT对话,opencv获取摄像头视频截图;Python基础编程示例:Excel读写追加处理,XML解析、JSON解析、FLV与MP4转换,PyQT界面应用程序开发示例等

    Python基础编程示例:Excel读写追加处理,XML解析、JSON解析、FLV与MP4转换,PyQT界面应用程序开发示例等,https证书到期检测,糗百爬虫,pdf和图片互相转换,socket使用,百度OCR调用例子,IP及端口快速扫描。

    TLV应用层协议开发示例

    本示例主要围绕如何使用TLV来设计和实现应用层通信协议。 TLV模式的基本原理是将数据分解为三个部分:标签(Tag)、长度(Length)和值(Value)。标签用于标识数据的类型,长度指示值字段的大小,而值则是实际要...

    WinForm(C#) DataGridView简单应用示例

    `DataGridView`还有许多高级功能,如行选择模式、分组、自定义绘制等,可以根据需求进行探索和应用。 这个示例项目可能包含了创建一个简单的`DataGridView`实例,设置数据源,以及可能的一些基本操作和事件处理。...

Global site tag (gtag.js) - Google Analytics