JavaEye问答:
java字符串解析
本来想回那帖的,但从学校坐了趟公交回到住处那问题就已经关闭了 T T
其实我是想说,这问题用正则表达式解决是如此的简单……因为那帖给的字符串是有规律的:
带有相同数字的项是相邻的。
例如说用Ruby的话,在irb里测试一下:
irb(main):001:0> src = '22:w,22:c,21:r,7:r,7:w,7:c,8:w,8:c,8:d,9:r,9:w,9:c,9:d,10:r'
=> "22:w,22:c,21:r,7:r,7:w,7:c,8:w,8:c,8:d,9:r,9:w,9:c,9:d,10:r"
irb(main):002:0> re = /((\d+):\w(,\2:\w)*),/
=> /((\d+):\w(,\2:\w)*),/
irb(main):003:0> expected_result = '22:w,22:c;21:r;7:r,7:w,7:c;8:w,8:c,8:d;9:r,9:w,9:c,9:d;10:r'
irb(main):004:0> result = src.gsub re, '\1;'
=> "22:w,22:c;21:r;7:r,7:w,7:c;8:w,8:c,8:d;9:r,9:w,9:c,9:d;10:r"
irb(main):005:0> result == expected_result
=> true
也就是说那个问题用一行代码的函数就能解决:
def reformat(src)
src.gsub /((\d+):\w(,\2:\w)*),/, '\1;'
end
即便用Java也仍然是同样的简单:
public class TestRegex {
public static String reformat(String src) {
return src.replaceAll("((\\d+):\\w(,\\2:\\w)*),", "$1;");
}
public static void main(String[] args) {
String src = "22:w,22:c,21:r,7:r,7:w,7:c,8:w,8:c,8:d,9:r,9:w,9:c,9:d,10:r";
String expected = "22:w,22:c;21:r;7:r,7:w,7:c;8:w,8:c,8:d;9:r,9:w,9:c,9:d;10:r";
String result = reformat(src);
System.out.println(result.equals(expected));
}
}
当然如果输入的字符串没有上述的特殊属性就无法保证这个方法的正确性了。只不过我猜那个问题原本作为源的字符串就是从什么别的程序输出得到的,或许本来就有这样的规律,值得利用。
分享到:
相关推荐
描述中提到的功能更具体地解释了联想输入提示的工作方式:当用户在输入框中键入内容时,系统会实时分析这些字符,并在下方显示出与之匹配的条目供用户选择。这一功能不仅限于单个词,还可能包括短语或完整的句子。...
4. **字节转换**:由于scel文件中的字符串可能是UTF-16编码,因此需要将字节流转换为字符串,可能使用`CharsetDecoder`或直接操作字节数组。 5. **错误处理**:处理可能出现的文件不存在、读取异常等情况,并提供...
其中可能包含了事件监听、字符串操作、DOM操作等函数。 4. `search.jsp`: 这可能是一个服务器端的Java页面,用于处理搜索请求,从数据库或其他数据源获取匹配的用户信息,并返回给前端。 5. `参数配置.txt`: 这个...
去除图标通常需要修改系统的资源文件或应用程序代码,这可能包括修改`resources.arsc`文件,这是一个二进制资源包,存储了应用的所有字符串、颜色、尺寸等资源数据。通过解析并编辑这个文件,可以实现对图标显示的...
接下来,我们设计一个工厂类`Driver`,它包含一个静态方法`driverCar`,根据传入的字符串参数动态返回对应的汽车实例。 通过这种方式,客户只需简单地说“开车”即可,而无需关心具体驾驶的是哪一款车型。`Driver`...
在这个案例中,我们可以推测源代码可能是用C++、Java、Python等常见编程语言编写,因为这些语言都具备处理字符串和文本输入的能力。源代码通常包括了读取用户输入、解析拼音、查找对应汉字、显示候选词组和实现...
这个包主要用于处理字符串、数字和其他数据类型的编码转换,尤其在处理网络通信和数据存储时非常有用。`commons.codec`是Apache Commons项目的一部分,这个项目旨在提供Java编程语言中的实用工具类。 `codec`一词...
标题中的"abc 联系代码hello world hello world"似乎是一种拼接或者混淆的信息,它可能代表了某个编程过程中的变量、字符串连接或是特定的代码片段。然而,由于信息不够明确,我们无法直接从中获取具体的技术知识点...
实现这一功能需要对字符串处理算法有深入理解,例如快速排序或二分查找算法。 再者,强大的"查找"功能是"我的全能通讯录"的一大亮点。它不仅支持关键词搜索,还能根据用户输入的部分信息进行智能联想,快速定位到...
- B项中的字符串长度与字长并无直接关系; - C项正确,字长为4个字节(1字节=8位),即32位,意味着计算机能够一次处理32位的数据; - D项表述错误,CPU运行的结果大小并非由字长直接决定。 #### 2. GUI程序中的...
这部分代码会涉及到字符串处理、哈希表(HashMap)或数组等数据结构的使用,以快速查找对应汉字。 3. **用户界面** 输入法的界面设计和交互体验至关重要。源码中可能包含布局文件(XML)和对应的Java代码,用于...
- **Redis**:是一个内存数据结构服务器,支持多种数据类型,如字符串、哈希、列表等。Redis可以通过序列化机制将Java对象转换为二进制形式存储。 - **EHCache**:是一个纯Java的缓存实现,主要用于缓存查询结果或...
2. **res** 文件夹:存储应用程序的资源文件,如图标、布局文件和字符串等,这些资源可以根据设备的不同配置进行适配。 3. **proguard-project.txt**:ProGuard配置文件,用于混淆代码,保护软件的安全性,减小APK...
它可以快速查找指定的函数、变量或字符串,并且提供上下文相关的联想列表,帮助开发者快速找到相关代码,提高工作效率。 4. **代码分析与统计**: 软件可以进行代码统计,如行数、注释比例等,为代码审查提供数据...
4. 附加功能:如果系统包含字词联想,可能涉及到字符串匹配算法;错误校正可能使用了自然语言处理技术,如Levenshtein距离算法。 五、设计与实现 在毕业设计中,开发者需要考虑软件工程的整个流程,包括需求分析、...
3. XML:XML用于定义界面布局和资源文件,如字符串、颜色、尺寸等,是Android应用界面设计不可或缺的一部分。 三、功能实现 1. 字典数据库:应用内可能包含一个预先填充的塔吉克语-俄语词汇数据库,支持离线查询,...
� Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...
6. ES6语法:现代JavaScript项目常常采用ES6(ECMAScript 2015)的新特性,如箭头函数、类、模板字符串等,以提高代码的可读性和可维护性。 7. 软件工程实践:良好的代码组织结构、模块化设计、注释以及测试,都是...