![](/img/trans.png)
[英]When parse the string to JsonElement, how to avoid auto read escape character?
[英]parse escape character as a byte
我將請求從客戶端套接字發送到服務器套接字,我想使用轉義字符(“\\ n”)區分請求(作為字節數組發送)。 我希望每個新行例子有一個請求:
"Request1 "
"Request2"
"Request3"
為了做到這一點,我需要轉換字節中的“\\ n”以便比較這樣的請求
byte[] request= new byte[1024];
int nextByte;
while((nextByte=in.read(request))!=DELIMITER)
{
String chaine = new String( request,0,nextByte);
System.out.println("Request send from server: " + chaine);
}
問題是,當我嘗試在字節中轉換“\\ n”時,我得到一個數字格式異常
private static final byte DELIMITER = Byte.valueOf("\n");
非常感謝你
嘗試這個:
private static final byte DELIMITER = (byte) '\n';
雙引號用於字符串文字,單引號用於字符,而字節#valueOf除了您的想法之外還有其他功能。
如果您想將String轉換為字節,您可以:
byte[] theBytes = "\n".getBytes("UTF-8");
你的問題有很多答案,但接下來的問題是為什么我的循環不起作用? 例如,如果您讀取的確切長度為10個字節,它將停止,如果您一次發送兩個消息,它們將在一次讀取中讀取。
你真正想要的是什么
BufferedReader br = new BufferedReader(new InputStreamReader(in));
for(String line; (line = br.readline()) != null; ) {
System.out.println("Line read: " + line);
}
請試試這個
private static final byte DELIMITER = '\n';
'\\ n'是char
類型,對應unsigned short 。 但是,請記住, short
Java中始終簽名。
這個怎么樣:
private static final byte DELIMITER = '\n';
將換行符括在單引號中會產生一個char值,在這種情況下可以將其賦值給一個字節而不會丟失任何信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.