英文:
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() > 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;
}
专注分享java语言的经验与见解,让所有开发者获益!
评论