【问题标题】:Split String by comma separated , but not able to find generic solution用逗号分隔字符串,但找不到通用解决方案
【发布时间】:2015-05-14 07:13:43
【问题描述】:
String str = "\"{\"\"oman\"\"\",333,333,Locationoman,1,NULL,3.33333E+15,0,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,,NULL,NULL,NULL,1,NULL,50036,1.42771E+12,0,NULL,0,NULL,NULL,NULL,,NULL,NULL,NULL,NULL,2,0,1,3,0,1,T,F,F,0,Volume,-1,302,50036,50036,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL,NULL,2,1,1,1,3,1,1,1,50036,0,1,0,OmanPrepaid,0,blrfts186_f861,CCC_USER_257,a082000000000033,\"16,436,113,650\",,NULL}";

我有一个这样的字符串,但输出应该是这样的

  1. 阿曼
  2. 333
  3. 333
  4. 位置人
  5. 1
  6. 3.33333E+15
  7. 0
  8. -1
  9. 1
  10. 50036
  11. 1.42771E+12
  12. 0
  13. 0
  14. 2
  15. 0
  16. 1
  17. 3
  18. 0
  19. 1
  20. T
  21. F
  22. F
  23. 0
  24. 音量
  25. -1
  26. 302
  27. 50036
  28. 50036
  29. 0
  30. 0
  31. 0
  32. 0
  33. 3
  34. 2
  35. 1
  36. 1
  37. 1
  38. 3
  39. 1
  40. 1
  41. 1
  42. 50036
  43. 0
  44. 1
  45. 0
  46. 阿曼预付
  47. 0
  48. blfts186_f861
  49. CCC_USER_257
  50. a082000000000033
  51. 16,436,113,650

检查第 91 个值,双引号中的所有值都在一个索引处。请帮助我。在此先感谢

【问题讨论】:

  • 您要"16436...、650" 还是要排除引号?
  • 您的字符串以\"{\" 开头,因此双引号内有一个大括号。为什么它被排除在输出之外?它与\"16,436,113,650\" 有何不同?
  • 当然,这些是我也面临@Tagir Valeev 的困惑。
  • 引号应该被排除在外@npinti

标签: java regex string parsing decode


【解决方案1】:

你可以像这样使用正则表达式:

String[] tokens = str.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");

您的字符串数组现在包含您想要的项目,第 91 个项目没有拆分,因为它在引号之间。

如果您还想从结果元素中删除引号,您可以为所有项目执行 for 循环:

for(int i = 0; i < tokens.length; i++) {
    tokens[i] = tokens[i].replace('\"', '');
}

或仅用于一项:

tokens[90] = tokens[90].replace('\"', '');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-07
    • 2015-03-29
    • 1970-01-01
    • 2020-06-12
    • 2011-03-25
    • 2016-09-04
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多