如何区分字符串内容?数据模型

zhz586 2006-12-08 10:08:29
20061201
00:00 新闻
09:25 金立世界论中国
18:15 美女私房菜
18:30 凤凰太空站
21:40 昆仑润滑油特约之鲁豫有约:说出你的故事
22:30 金立世界论中国
24:00 天气
end
20061202
00:00 天气
09:25 金立世界论中国
18:15 美女私房菜
18:30 凤凰太空站
21:40 昆仑润滑油特约之鲁豫有约:说出你的故事
22:30 金立世界论中国
24:00 广告
end
20061203
00:00 足球比赛
09:25 金立世界论中国
18:15 美女私房菜
18:30 凤凰太空站
21:40 昆仑润滑油特约之鲁豫有约:说出你的故事
22:30 金立世界论中国
24:00 电视剧
end
......................
==========================================

通过上面的举例数据
我们可以知道有3种实验数据
1,日期yyyymmdd
2,结束符:end
3,具体节目信息: hh:mm 节目名

问题来了
现在我按行读数据
如何知道这一行是属于那种类型的数据,考虑数据存在异常的情况
比如
1): 22;30 金立世界论中国
2): .........
24:00 广告
(没有end结束符)/(或者没有yyyymmdd开始)
20061203
00:00 新闻
........
说穿了 就是如何区分当前读入的这一行是日期yyyymmdd还是节目内容hh:mm asdfadfasdfasfd?





...全文
218 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liufei8463 2006-12-08
  • 打赏
  • 举报
回复
我一直用正则来解决这些问题的
fool_leave 2006-12-08
  • 打赏
  • 举报
回复
“如果是200612088,2006120,再或者2o061208 虽然我知道它不是日期yyyymmdd 但是还是要判断出它是”
这样的日期型好办,毕竟有规律
不用正则表达式,那就要解析String,通过split、indexOf、subString来分析,体力活

但如果有输入错误,那就不行了。这样的输入必须在输入部分加以控制,不可以让错误质输进来,不然没法分析的。
zhz586 2006-12-08
  • 打赏
  • 举报
回复
也许我意思没表达清楚
我把需求再说一下
就是
如何通过程序判断出这一行的内容是什么类型
1,日期yyyymmdd
2,结束符:end
3,具体节目信息: hh:mm 节目名

如果是200612088,2006120,再或者2o061208 虽然我知道它不是日期yyyymmdd 但是还是要判断出它是日期类型
还有就是如果是endd esd..............
因为这个数据单子是人工手动生成的 所以可能出现这样的miss
masse 2006-12-08
  • 打赏
  • 举报
回复
不会正则表达式就用indexOf,substring等等来弄。
但是regex很有用,还是学学。
慢慢就会了。。
masse 2006-12-08
  • 打赏
  • 举报
回复
private static boolean isDate(String str)
{
// 日期的判断最好别那么简单,csdn太多了,可以自己找
String pattern = "^[\\d]{8,8}$";
return str.trim().matches(pattern);
}

private static boolean isNews(String str)
{
String pattern = "^[\\d]{2,2}[:|;|;][\\d]{2,2}\\s+.*$";
return str.trim().matches(pattern);
}

public static void main(String[] args) throws Exception
{
String str = "22;30 你好";
if (isDate(str))
{
System.out.println("日期");
}
else if (isNews(str))
{
System.out.println("新闻");
}
else
{
System.out.println("格式错误");
}
}
zhz586 2006-12-08
  • 打赏
  • 举报
回复
其实我的确有意在回避使用正则表达式
不管能不能实现
因为我不懂正则表达式啊!!!!!!!!!!!
masse 2006-12-08
  • 打赏
  • 举报
回复
正则表达式啊
88324877 2006-12-08
  • 打赏
  • 举报
回复
恩 用正则试试
fool_leave 2006-12-08
  • 打赏
  • 举报
回复
最方便的方法是用正则表达式检测
但你必须知道可能读入的字符串格式是什么样的,不然没办法
zhz586 2006-12-08
  • 打赏
  • 举报
回复
可能问得比较白痴 说不定很简单的方法就能搞定
出去抽支烟清醒一下 理理头绪

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧