我有以下数据要分开。
(1,167,2,'LT2A',45,'Weekly','1,2,3,4,5,6,7,8,9,10,11,12,13'),
获取每个值:
1
167个
2
'LT2A'
45个
“每周”
'1,2,3,4,5,6,7,8,9,10,11,12,13'
我正在使用Scanner类来执行此操作,并使用,作为分隔符。
但由于最后一个字符串,我遇到了问题:('1,2,3,4,5,6,7,8,9,10,11,12,13')
。
因此,我想就如何分割这些数据提出一些建议 我也尝试使用''作为分隔符,但字符串包含没有''的数据。
这个问题非常符合我的需求,但如果有人能就我如何分割这些数据给我建议,我将不胜感激。
谢谢!
答案 0 :(得分:2)
你可以使用简单的逻辑,例如:
String str="1,167,2,'LT2A',45,'Weekly','1,2,3,4,5,6,7,8,9,10,11,12,13'";
Scanner s = new Scanner(str);
s.useDelimiter(",");
while(s.hasNext())
{
String element = s.next();
if(element.startsWith("'") && ! element.endsWith("'"))
{
while(s.hasNext())
{
element += "," + s.next();
if(element.endsWith("'"))
break;
}
}
System.out.println(element);
}
答案 1 :(得分:1)
您可以为案例做的最好的事情是首先使用“'
”将其拆分,然后使用“"
”分隔符将其拆分。喜欢以下代码:
String cc = "(1,167,2,'LT2A',45,'Weekly','1,2,3,4,5,6,7,8,9,10,11,12,13'),";
Scanner s = new Scanner(cc);
try
{
while (s.hasNextLine())
{
String[] tokens = s.nextLine().split("'"); //split it using ' delimiter
for (int i = 0; i < tokens.length; i++)
{
String[] ss = tokens[i].split(","); // split it using " delimiter
// do the processing for tokens here
}
}
}
finally
{
s.close();
}
答案 2 :(得分:1)
尝试
String s = "1,167,2,'LT2A',45,'Weekly','1,2,3,4,5,6,7,8,9,10,11,12,13'";
Scanner sc = new Scanner(s);
sc.useDelimiter(",");
while (sc.hasNext()) {
String n = sc.next();
if (n.startsWith("'") && !n.endsWith("'")) {
n = n + sc.findInLine(".+?'");
}
System.out.println(n);
}
}