`
wuhua
  • 浏览: 2112087 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

j2me常用的字符,日期,以及转换编码实现

    博客分类:
  • J2ME
阅读更多

import java.io.UnsupportedEncodingException;
import java.util.Vector;

import javax.wireless.messaging.Message;

/**
 * 转换网络传过来的数据
 * 
 * @auth colonel
 * @dateOrLeague 2006-7-11
 * 
 */

public class StringUtil {
	 

	/**
	 * 切割str字符串
	 * 例如("wuhua,中国,好,",",");分割成String[] s = {"wuhua","中国","好");
	 * @param str 源字符串
	 * @param regex,分割标致,
	 * @return
	 */
	public static String[] split(String bufferstr, String regex) {

		if(bufferstr == null)
			return null;
		Vector split = new Vector();

		while (true) // 处理从网络上获得的数据并对其进行处理
		{
			int index = bufferstr.indexOf(regex);

			if (index == -1) {
				if (bufferstr != null && !bufferstr.equals(""))
					split.addElement(bufferstr);
				// log.debug("bufferstr=" +bufferstr);s
				break;
			}
			split.addElement(bufferstr.substring(0, index));
			// log.debug("Str=" + bufferstr.substring(0, index));
			bufferstr = bufferstr.substring(index + 1, bufferstr.length());
			// log.debug("bufferstr=" +bufferstr);
		}
		String[] s = new String[split.size()];

		split.copyInto(s);

		return s;

	}

	
	/**
	 * 转换网络上的字节为中文
	 * @param bytes
	 * @param start
	 * @return
	 */
	public static String getStringToGBK(byte[] bytes, int start) {
		byte[] rt = new byte[bytes.length - start];
		for (int i = 0; i < rt.length; i++)
			rt[i] = bytes[i + start];
		try {
			return new String(rt, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return new String(rt);
		}
	}

}



/**
 * 转换编码
 * @author Administrator
 *
 */
public class FormatTransfer {

	public static int getUINT4(byte ba[], int start) {
		int r = 0;
		r |= 0xff & ba[start];
		r <<= 8;
		r |= 0xff & ba[start + 1];
		r <<= 8;
		r |= 0xff & ba[start + 2];
		r <<= 8;
		r |= 0xff & ba[start + 3];
		return r;
	}

	public static void setUINT4(byte ba[], int start, int value) {
		ba[start] = (byte) (value >> 24 & 0xff);
		ba[start + 1] = (byte) (value >> 16 & 0xff);
		ba[start + 2] = (byte) (value >> 8 & 0xff);
		ba[start + 3] = (byte) (value & 0xff);
	}

	public static void setUSHORT4(byte ba[], int start, short value) {
		ba[start + 0] = (byte) (value >> 8 & 0xff);
		ba[start + 1] = (byte) (value & 0xff);
	}

	public static short getUSHORT4(byte ba[], int start) {
		short r = 0;
		r |= 0xff & ba[start];
		r <<= 8;
		r |= 0xff & ba[start + 1];
		return r;
	}

	public static void appen(byte[] rt, byte[] bodys, int start) {
		for (int i = 0; i < bodys.length; i++) {
			rt[start + i] = bodys[i];
		}
	}

}


 

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**
 * <b>类名:DateTime.java</b> </br> 编写日期: 2006-6-23 <br/> 程序功能描述:日期时间的工具类 <br/>
 * Demo: <br/> Bug: <br/>
 * 
 * 程序变更日期 :<br/> 变更作者 :<br/> 变更说明 :<br/>
 * 
 * @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
 */

public final class DateTime {
	private static String[] WEEKDAYS_EN = { "SUN", "MON", "TUE", "WED", "THU",
			"FRI", "SAT" };

	private static String[] WEEKDAYS_CH = { "周日", "周一", "周二", "周三", "周四", "周五",
			"周六" };

	public final String timeZone;

	public final int year;

	public final int month;

	public int day;

	public int weekday;

	public final int hour;

	public final int minute;

	public final int second;

	public final int millsecond;

	Calendar c;

	public DateTime(Date date, String timeZone) {
		this.timeZone = timeZone;
		c = timeZone == null ? Calendar.getInstance() : Calendar
				.getInstance(TimeZone.getDefault());
		c.setTime(date);
		year = c.get(Calendar.YEAR);
		month = c.get(Calendar.MONTH);
		day = c.get(Calendar.DAY_OF_MONTH);
		weekday = c.get(Calendar.DAY_OF_WEEK);
		hour = c.get(Calendar.HOUR_OF_DAY);
		minute = c.get(Calendar.MINUTE);
		second = c.get(Calendar.SECOND);
		millsecond = c.get(Calendar.MILLISECOND);
	}

	public DateTime(long time, String timeZone) {
		this(new Date(time), timeZone);
	}

	public DateTime() {
		this(System.currentTimeMillis(), "GMT + 16");
	}

	public static String beforeOneDate() {
		return new DateTime(System.currentTimeMillis() - 24 * 3600 * 1000,
				"GMT+8").toDateString();
	}

	public Date toDate() {
		Calendar c = Calendar.getInstance(TimeZone.getTimeZone(timeZone));
		c.set(Calendar.YEAR, year);
		c.set(Calendar.MONTH, month);
		c.set(Calendar.DAY_OF_MONTH, day);
		c.set(Calendar.HOUR_OF_DAY, hour);
		c.set(Calendar.MINUTE, minute);
		c.set(Calendar.SECOND, second);
		c.set(Calendar.MILLISECOND, millsecond);
		return c.getTime();
	}

	public String toDateString() {
		if (timeZone.equals("GMT-8"))
			return (month + 1) + "月" + day + "日" + " ["
					+ WEEKDAYS_EN[weekday - 1] + "] ";
		else
			return (month + 1) + "月" + day + "日" + " ["
					+ WEEKDAYS_CH[weekday - 1] + "] ";

	}

	public void setDate(int day) {

		this.day = day;
		this.c.set(Calendar.DAY_OF_WEEK, day);
		// day = c.get(Calendar.DAY_OF_WEEK);
		weekday = c.get(Calendar.DAY_OF_WEEK);

	}

	public String toTimeString() {
		return hour + ":" + minute + ":" + second + ":" + millsecond;
	}

	public String toString() {
		return toDateString() + " " + toTimeString();
	}
}

分享到:
评论

相关推荐

    J2me阶段考试试题

    在J2ME中,重点在于轻量级的系统实现和优化资源利用,以便在有限内存和处理能力的设备上运行。J2ME 包含多个配置和框架,如 Mobile Information Device Profile (MIDP) 和 Connected Limited Device Configuration ...

    j2me的一些工具类

    在J2ME开发中,工具类(Utility Class)是一种常见的编程模式,它们通常包含静态方法,用于执行特定的任务,如字符串处理、日期时间操作、网络通信辅助等。以下是一些可能在压缩包中的工具类及其可能包含的功能: 1...

    tengge手机端j2me编程教程.doc

    3. **Preverifier**:这个工具的作用是将编译后的.class文件转换为可以在手机上执行的格式,因为J2ME的字节码与标准Java虚拟机有所不同。 4. **JAR打包工具**:用于将编译好的类文件打包成JAR(Java Archive)文件...

    10. 数值运算,字符串处理,时间管理1.rar

    在J2ME(Java 2 Micro Edition)开发中,数值运算、字符串处理和时间管理是三个核心的编程概念。这些概念对于构建任何J2ME应用程序都至关重要,无论它们是简单的游戏还是复杂的移动应用。 首先,我们来探讨数值运算...

    java面试题大全--java基础,struts,spring,ejb等

    - **编码转换**:使用`new String(byte[], "目标编码")`进行编码转换,例如: ```java String gb2312Str = "你好"; byte[] isoBytes = gb2312Str.getBytes("GB2312"); String isoStr = new String(isoBytes, ...

    华为与IBM等公司--JAVA面试题大全.doc

    编码转换可通过Charset类进行,例如将GB2312编码的字符串转换为ISO-8859-1编码。 访问数据库通常使用JDBC,Statement用于执行静态SQL,PreparedStatement支持预编译的SQL,能防止SQL注入,更安全。 【JSP&Servlet...

    QQ-java面试问题集锦.doc

    编码转换可以通过`new String(bytes, "GB2312").getBytes("ISO-8859-1")`这样的方式实现,将源字符串的编码转换为目标编码。 【数据库访问】 访问数据库通常涉及JDBC,`Statement`用于执行静态SQL,而`...

    java面试题

    Java面试题涵盖了许多核心Java概念和技术,包括基础语法、数据类型转换、日期时间处理、数组与集合、I/O操作、多态、编码转换、数据库访问、JSP与Servlet技术、J2EE相关知识以及Web安全性和其他编程模型。...

    JAVA面试常见问题大全及解答.docx

    - 数据类型转换,如Character.getNumericValue()用于将字符转换为数字,Integer.parseInt()和Double.parseDouble()用于将字符串转换为数字。 2. **日期和时间**: - 使用java.util.Date和java.time包中的类来获取...

    JAVA面试题最全集.pdf

    3. 数据类型之间的转换:如何将数值型字符转换为数字(Integer、Double),如何将数字转换为字符,如何取小数点前两位并四舍五入。 4. 日期和时间:如何取得年月日、小时分秒,如何取得从1970年到现在的毫秒数,如何...

    华为与IBM等公司JAVA面试题大全.pdf

    Java面试题集主要涵盖了Java基础知识、JSP与Servlet技术、J2EE相关知识以及其他重要概念。以下是对这些知识点的详细说明: 1. **Java基础知识**: - 基本数据类型包括:byte, short, int, long, float, double, ...

    tengge py for s60编程教程

    5.9对象与字符串的转换 6.0逻辑运算符 6.1定时程序的设计 6.2文本的查找替换和分割 6.3打包三版py软件的方法 6.4附加目录的创建技巧 6.5加密脚本的打包方法 6.6打包多脚本软件的方法 6.7对字典操作的函数 6.8多脚本...

    java面试题收集集锦

    - 日期和时间处理常用java.util.Date和java.time包,可以获取日期、时间戳,并进行格式化。 2. **数组与集合** - 数组是一维或多维的数据结构,集合如ArrayList、LinkedList、HashSet等提供了更灵活的数据管理...

    java工程师面试技巧.doc.pdf

    8. 编码转换,如使用`new String(byte[], "encoding")`构造字符串,将GBK编码转换为ISO-8859-1编码。 9. 数据库访问,通常使用JDBC,Statement用于执行静态SQL,PreparedStatement用于预编译SQL,提升性能,减少SQL...

Global site tag (gtag.js) - Google Analytics