忽略转义-Java
我一直在尝试创建一种用Java编码字符串的方法,但我遇到了一个大障碍 我的问题是我不能忽略诸如\n\u\之类的转义。(它们也被编码了。) 我在这个问题上花了3个小时,这是我的代码忽略转义-Java,java,escapestring,Java,Escapestring,我一直在尝试创建一种用Java编码字符串的方法,但我遇到了一个大障碍 我的问题是我不能忽略诸如\n\u\之类的转义。(它们也被编码了。) 我在这个问题上花了3个小时,这是我的代码 public Object encode() throws EncodingException { String encoded = ""; if (!isEncoded) { int i = 0; char[] alpha = (this.value.toString(
public Object encode() throws EncodingException {
String encoded = "";
if (!isEncoded) {
int i = 0;
char[] alpha = (this.value.toString().toCharArray());
while (!(i >= alpha.length)) {
i++;
try {
if(!(alpha[i - 1] == '\\')){
encoded = encoded
+ SerializeEncoding.encoding.encodings.get(
new String(new char[] { alpha[i - 1] }))
.toString();
}else{
encoded = encoded
+ alpha[i - 1] + alpha[i];
i++;
}
} catch (NullPointerException e) {
encoded = encoded
+ new String(new char[] { alpha[i - 1] })
.toString();
}
}
encodedValue = (Object) encoded;
isEncoded = true;
log = encodedValue;
return (Object) encodedValue;
} else {
throw new EncodingException("Already encoded");
}
}
多谢各位
卷发
注:如果我遗漏了什么,请告诉我。一个选项如下。请优化代码
String before = "test\ntest1\n";
String after = "";
String [] str = before.split("\n");
for (String string : str) {
after = after+encode(string)+"\n";
}
我不太清楚您的需求,您可以通过迭代字符串来处理java中的所有特殊字符
public static void main(String[] args) {
String before = "test\ntest1\n";
final StringBuilder result = new StringBuilder();
final StringCharacterIterator iterator = new StringCharacterIterator(before);
char character = iterator.current();
while (character != CharacterIterator.DONE ){
// do whatever you want to do with the char... I am just removing the \n
if (character == '\n') {
character = iterator.next();
} else {
result.append(character);
}
character = iterator.next();
}
System.out.println(result.toString());
}
使用可用的编码库是否有限制?e、 g Base64编码?不,我目前无法在互联网上下载。我只剩下很少的数据了。顺便说一句,我很无聊,所以我试着做我自己的。不清楚你在问什么。您的意思是
alpha
数组实际上包含字符“\”和“n”还是包含单个字符LF(\u000a)?您希望发生什么,以及会发生什么?是alpha
包含“\”和“n”作为input@curlip好的,但我还是不明白问题出在哪里。你能举一个输入、预期输出和实际输出的例子吗?