`
iMzw
  • 浏览: 193945 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java ME 中 String的 Split 方法

    博客分类:
  • Java
阅读更多
最近公司需要一个手机的Java ME客户端,于是乎就开始研究。

发现限制太多了,也可能是用Java SE用习惯了。真是带着镣铐跳舞。很多Java SE有的东西,在Java ME 里都需要自己实现。

比如:String 类的Split方法。还就是集合只有Hashtable和Vector。

我写了两个工具方法:
string2Vector
可以用来处理类似CSV格式的String。

比如:
String in="abd,ddd,adsfa";

Vector out = StringUtil.string2Vector(in, ",");


string2Hashtable
可以用来处理Properties文件格式的String。
比如:
name=abc
age=123
gender=male

String in = "name=abc\nage=123\ngender=male";
Hashtable out = StringUtil.string2Hashtable(in, "\n", "=");



import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

public class StringUtil {
	public static Vector string2Vector(String in, String delimiter) {
		Vector vector = new Vector();
		if (in == null) {
			return null;
		}
		if (delimiter == null || delimiter.length() == 0) {
			vector.addElement(in);
			return vector;
		}

		int fromIndex = 0;
		int pos;
		while ((pos = in.indexOf(delimiter, fromIndex)) >= 0) {
			String interim = in.substring(fromIndex, pos);
			if (interim.length() > 0) {
				vector.addElement(interim);
			}

			fromIndex = pos + delimiter.length();
		}

		return vector;
	}

	public static Hashtable string2Hashtable(String in, String delimEntry,
			String delimKey) {
		if (in == null) {
			return null;
		}

		Hashtable hashtable = new Hashtable();

		if (delimEntry == null || delimEntry.length() == 0 || delimKey == null
				|| delimKey.length() == 0) {
			hashtable.put(in, "");
			return hashtable;
		}

		Enumeration enumeration = string2Vector(in, delimEntry).elements();
		int len = delimKey.length();
		while (enumeration.hasMoreElements()) {
			String entry = (String) enumeration.nextElement();

			int pos = entry.indexOf(delimKey);
			if (pos > 0) {
				String value = entry.substring(pos + len);
				hashtable.put(entry.substring(0, pos), value);
			} else {
				hashtable.put(entry, "");
			}
		}

		return hashtable;
	}
}


1
0
分享到:
评论

相关推荐

    Java中Split的用法及注意

    Java 中的 Split 方法是通过正则表达式来拆分字符串的,它可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。该方法的语法为 `stringObj.split(regex, [limit])`,其中 `stringObj` 是要被分解的字符...

    chatRoom 聊天室

    String com = str.split("%")[1]; if (com.equals("EXIT_CHATROOM")) { hs.remove(s); printMessage(str.split("%")[2] + ",leave!"); s.close(); break; } } else { /* 正常情况,直接向客户端群发消息 ...

    JDK1.7 api文档英文原版

    4. **改进的字符串操作**:在`String`类中,新增了一些实用方法,如`join()`用于连接字符串数组,`split()`的限制参数使得分割更具灵活性,以及`isBlank()`判断字符串是否为空或仅包含空白字符。 5. **新集合工厂...

    java 字符串的拼接的实现实例

    在循环语句中,我们使用了 indexOf() 方法来判断字符是否是数字,然后使用 replace() 方法来将数字与字母之间用下划线字符(_)分开。 该实现实例展示了 Java 字符串拼接的实现过程,并提供了一个实际的编程例子,...

    Java基于UDP协议实现简单的聊天室程序

    // 获取消息中的用户和聊天室 String userID = me.getUserId(); String groupID = me.getGroupId(); // 获取消息内容 String message = me.getMessage(); // 输出接收到的信息 System.out.println("接收到消息:" +...

    蓝桥杯大题总结(历届比赛共40多大题) java 版

    ### 蓝桥杯大题总结之Java版详解 #### 一、全排列问题解析 ...以上两个问题展示了在Java编程中处理全排列以及字符串操作的一些常见技巧和方法。这些练习有助于加深对递归、字符串处理、正则表达式的理解和应用。

    Java利用数组随机抽取幸运观众如何实现

    String[] audienceNames = input.split("\n"); int randomIndex = (int) (Math.random() * audienceNames.length); String winner = audienceNames[randomIndex]; String message = "恭喜,中奖者是:%s"; ...

    获取外网IP

    String ip = scanner.nextLine().split(":")[1].trim(); System.out.println(ip); scanner.close(); } } ``` 这些示例都通过HTTP GET请求获取外网IP,并解析返回的文本内容。 4. **应用案例**: - **远程...

    shell 使用指定的分割符来分割字符串的方法

    在Java中,我们可以使用`split()`函数来完成这个任务,但在Shell中,由于`split`已经被用于文件分割,所以我们需要寻找其他方法来实现字符串的分割。本文将详细介绍三种使用指定分隔符来分割字符串的方法。 方法一...

    freemarker总结

    这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>... <#else> ... 例子如下: (age>60)>老年人 ...

    mapreduce的简单的原理和计数代码

    String[] words = line.split("\\s"); for (String word : words) { context.write(new Text(word), new IntWritable(1)); } } } // Reducer类 public class WordCountReducer extends Reducer, IntWritable, ...

    C#坦克大战网络版代码

    //java中是这样写得Tank t = new Tank(x,y,good,dir,tc) Tank t = new Tank(x, y, good, dir, tc); //有可能是老坦克 给新坦克发包 所以要家dir参数 t.ID = id; tc.tanks.Add(t); } } 6.坦克移动消息 public ...

    Kotlin_Demo

    8. **Anko库**: Anko是一个用于简化Android开发的库,提供了DSL(领域特定语言)来替代XML布局和Java的冗长代码。例如,使用Anko创建布局: ```kotlin verticalLayout { textView("Hello, Kotlin!") button(...

    jqzoom放大镜插件.zip

    * $License : GPL,so any change to the code you should copy and paste this section,and would be nice to report this to me(renzi.mrc@gmail.com). */ (function($) { $.fn.jqzoom = function(options) { ...

    VB编程资源大全(英文源码 控制)

    1.x/6.0 (Java) <END><br>6 , ocxex.zip "This is a quick example I made to show you how to use Events and properties in a OCX."<END><br>7 , news.exe This control aids as a complete Newsgroup ...

Global site tag (gtag.js) - Google Analytics