![]() |
1
9
最简单的方法是手工实现一个简单的有限状态机。换句话说,一次处理字符串一个字符:
|
![]() |
2
3
根据原始字符串的格式,您应该能够使用正则表达式作为Java“拆分”方法的参数: Click here for an example . 不过,该示例不使用执行此任务所需的正则表达式。 您也可以使用 this SO thread 作为一个指导方针(尽管它是在PHP中),它的作用非常接近于您所需要的。稍微操作一下可能会有一些技巧(尽管引号是否是输出的一部分,可能会导致一些问题)。请记住,regex在大多数语言中非常相似。 编辑 :对这类任务的深入研究可能会超过regex的功能,因此您可能需要创建一个简单的解析器。 |
![]() |
3
3
正确给出:
确保您对[A-Z+]部分进行了调整,以防您的键结构发生变化。 编辑 :如果对的值部分有“=”字符,此解决方案可能会失败。 |
![]() |
4
1
StreamTokenizer 可以帮助,尽管在“=”上最容易设置为中断,因为它总是在带引号的字符串的开头中断:
输出
如果省略将数字字符转换为字母的两行,则
|
![]() |
5
1
假设:
这对我来说很好。 输入:
输出:
代码:
|
![]() |
6
1
或者,使用一个用于标记化的regex,以及一个只将key/val添加到映射的小型状态机:
打印输出
它执行一些基本的错误检查,并去掉值的引号。 |
![]() |
7
0
这个解决方案既普通又紧凑(实际上是克莱特斯答案的regex版本):
换句话说,查找所有由带引号的字符串或非空格字符组合而成的字符;不支持嵌套引号(没有转义字符)。 |
![]() |
8
0
输出: d=777,a=b,e='uij yyy',c='123 456' 在这种情况下,连续空间将被截断为值中的单个空间。 这里属性化的hashmap包含值 |
![]() |
9
0
|
![]() |
10
-1
|
![]() |
11
-2
您是否尝试用“=”拆分并从结果数组的每对中创建一个标记? |
|
user29759326 · 如何返回递归函数中的最后一个值? 5 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 5 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 5 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |