V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
XhstormR
V2EX  ›  问与答

请问 Java 中如何判断一个字符串中是否包含除了中文、常见标点符号、大小写英文、阿拉伯数字以外的字符?

  •  
  •   XhstormR · 2016-10-08 14:55:49 +08:00 · 6124 次点击
    这是一个创建于 2779 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是我最近写的程序: https://github.com/XhstormR/GetBilibili

    在下载 Bilibili 其中一个视频的时候,发现失败了,通过排查是最后合并的时候,标题含有 德语

    http://www.bilibili.com/video/av2685572/

    Title : [喜剧 /家庭] 红酒烩香鸡 Kokowääh( 2011 ) [ 1080P/超清无损双字] (帅叔萌萝莉)

    那么如何判断除了常用字符之外的其他字符呢,判断是否包含日语,韩语,德语什么的,也就是我的标题想表达的意思。

    10 条回复    2016-10-08 18:15:45 +08:00
    21grams
        1
    21grams  
       2016-10-08 15:09:13 +08:00   ❤️ 1
    sutra
        2
    sutra  
       2016-10-08 16:04:20 +08:00
    你是不是用标题做文件名了?
    skydiver
        3
    skydiver  
       2016-10-08 16:09:02 +08:00
    明显这是个 X-Y problem
    你需要的是不管什么语言程序都能正常工作,而不是判断出有其他语言然后过滤掉。
    XhstormR
        4
    XhstormR  
    OP
       2016-10-08 16:30:49 +08:00
    @sutra 嗯,这是功能之一。

    @skydiver 这个 Bug 并不是我程序问题,而是调用的 Yamdi 不支持这种字符,所以我必须事先过滤,否则只有改 Yamdi 的源码重新编译。
    skydiver
        5
    skydiver  
       2016-10-08 16:36:07 +08:00
    @XhstormR 可以给他们提个 pr 吧 :D 造福更多的人
    XhstormR
        6
    XhstormR  
    OP
       2016-10-08 17:20:23 +08:00
    @skydiver Yamdi 是 C 写的。。。。
    fwrq41251
        7
    fwrq41251  
       2016-10-08 17:25:16 +08:00
    @XhstormR 那你可以提 issue.
    skydiver
        8
    skydiver  
       2016-10-08 17:30:37 +08:00
    @XhstormR 我觉得如果是文件名里含有一些字符就出错,应该是 Windows 文件系统编码的锅,跟 yamdi 应该关系不大
    skydiver
        9
    skydiver  
       2016-10-08 17:31:17 +08:00
    可以试试把代码在 Linux 环境运行,估计很多问题都没有了
    XhstormR
        10
    XhstormR  
    OP
       2016-10-08 18:15:45 +08:00
    已修复。

    顺便把失效的 Key 也更新了,看来以后这种东西要藏着,不过要开源又没啥好办法,哎。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:02 · PVG 01:02 · LAX 10:02 · JFK 13:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.