我以编程方式从GPS(纬度/经度)收到位置地址;但是,有时我会收到包含特殊/不需要的字符的位置地址。
当我将包含特殊/不需要的字符的地址发送到服务器时,它们会被服务器拒绝。
示例1:,delhi,ä¸å?½
示例2:सà¥??क
如何防止此问题?
答案 0 :(得分:0)
您可以使用正则表达式来避免此问题,并匹配所有字符都是US-ASCII代码点类型。
org.apache.hadoop.hdfs.server.common.IncorrectVersionException: Unexpected version of storage directory ..\Metadata\data\dfs\namenode. Reported: -63. Expecting = -57.
at org.apache.hadoop.hdfs.server.common.StorageInfo.setLayoutVersion(StorageInfo.java:178)
at org.apache.hadoop.hdfs.server.common.StorageInfo.setFieldsFromProperties(StorageInfo.java:131)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.setFieldsFromProperties(NNStorage.java:608)
at org.apache.hadoop.hdfs.server.common.StorageInfo.readProperties(StorageInfo.java:228)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:323)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:202)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:955)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:700)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:529)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:585)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:751)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:735)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1407)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1473)
16/10/13 12:45:13 INFO util.ExitUtil: Exiting with status 1
16/10/13 12:45:13 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at myserver25/192.1.100.26
************************************************************/
如果您使用的是Java 8,可以这样做:
String testText [] = new String[] { "delhi", "ä¸å?½",
"à¤", "à¥à¤• ", "tessst½", "some valid test text1213"
};
for (String str : testText) {
if (str.matches("\\A\\p{ASCII}*\\z")) {
//do something
Log.d("TAG", str + " - String is valid");
}
}
如果您只是想检查每个字符,请执行以下操作:
textInfoFromLocation.chars().allMatch(c -> c < 128)
可在此answer
中找到更多信息