将Outlook中的电话号码粘贴到JavaFX的TextField或TextArea中会产生多余字符。

huangapple 未分类评论76阅读模式
英文:

Pasting Phone number from Outlook to JavaFX TextField or TextArea produce Extraneous Characters

问题

我遇到了一个奇怪的问题,就是当用户从Outlook联系人中复制并粘贴一个电话号码到JavaFX的文本字段或文本区域时,会带有许多多余的字符。

例如,如果他们从Outlook联系人字段中复制了“(555) 555-1234”,然后粘贴到JavaFX应用的文本字段或区域中,结果变成了“(555) 555-1234e.UX.FlexClipboard.FUpdateAcbUi”、“CV”:“ER1soZ/YLEibq7jkbdMVCg.163”、“ProcessIdentifier”:“OUTLOOK.exe_16.0.13029.20308_X86_{A16C1D11-D89F-482C-9BAB-B8E46DD3150A}”} “Activity.CV”:“ER1soZ/YLEibq7jkbdMVCg.162”、“Activity.Duration”:86、“Ac”

  • 这似乎只会发生在Outlook中的电话号码字段。其他字段,如姓名、地址等,似乎工作正常。
  • 如果我从Outlook粘贴到Word、文本文件,甚至是IntelliJ中的文件,它都会正常显示。
  • 无论我是通过Ctrl-V复制还是粘贴,还是通过右键选择甚至编程方式复制或粘贴,都没有影响。

抱歉 - 这里真的没有什么“代码”可以展示。我认为任何FX应用的文本字段或区域都会出现这个问题。

有什么想法吗?

英文:

I'm having a strange issue where if a user copies and pastes a phone number from Outlook Contacts to a text field or text area in javaFX, a bunch of extraneous characters are coming over with it.

For example, if they copy "(555) 555-1234" from the Outlook Contact field and paste in the javaFX app text field or area, the result is "(555) 555-1234e.UX.FlexClipboard.FUpdateAcbUi", "CV": "ER1soZ/YLEibq7jkbdMVCg.163", "ProcessIdentifier": "OUTLOOK.exe_16.0.13029.20308_X86_{A16C1D11-D89F-482C-9BAB-B8E46DD3150A}"} "Activity.CV": "ER1soZ/YLEibq7jkbdMVCg.162", "Activity.Duration": 86, "Ac"

  • This only seems to happen from phone number fields in Outlook. Other fields - name, address, etc. seem to work fine.
  • If i paste from Outlook to Word, a text file, even a file in intelliJ, it comes across normally
  • it doesn't matter if I copy or paste via Ctrl-V or right mouse selection or even programmatically

Sorry - there really is no 'code' to show here. I believe it will happen with any FX app text field or area.

Ideas?

答案1

得分: 0

以下是您要翻译的内容:

我会尝试只检查字符串是否包含过多字符,然后将它们删除。
这样做快速而简单,但并不是最高效的方法。

private static String checkString(String s){

if (s.length() > 12){

    for(int i =0; i< s.length(); i++){
        if(s.charAt(i) > 'a' && s.charAt(i) < 'z'){
        return s.substring(0, i);
        }
    }

}
return s;

}

英文:

I would try to just check if the string contains too many characters then remove them.
it's quick and easy but it's not the most efficient way

private static String checkString(String s ){

    if (s.length() &gt; 12){

        for(int i =0; i&lt; s.length(); i++){
            if(s.charAt(i) &gt; &#39;a&#39; &amp;&amp; s.charAt(i) &lt; &#39;z&#39;){
            return s.substring(0, i);
            }
        }

    }
    return s;
}

huangapple
  • 本文由 发表于 2020年8月14日 21:58:24
  • 转载请务必保留本文链接:https://java.coder-hub.com/63414220.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定