我是Java / Android的新手。我创建了一个这样的数组:
String [] resultArray = new String [lengthFromServ];
int i = 0;
while (i<lengthFromServ) {
int result = fromServ.read();
char valueOfResult = (char) result;
String resultFromServ = Character.toString(valueOfResult);
resultArray[i] = resultFromServ;
i++;
}
lengthFromServ在之前声明:( while语句执行4次)
lengthFromServ = 4;
Serwer发给我字符串:“0,12”
当我尝试通过以下方式打印此数组的元素时:
System.out.println(Arrays.toString(resultArray))
我明白了:
[0, ,, 1, 2]
我的问题是:我怎样才能获得此数组的元素?没有"["
,"]"
,","
?我只想得到这个字符串:
0,12
请帮助,我将不胜感激任何帮助。
答案 0 :(得分:1)
您正在从服务器上完全错误地阅读。您应该使用BufferedReader或DataInputStream。这些将使您可以轻松阅读:
Socket socket = new Socket(serverHost, serverPort);
DataInputStream dis = new DataInputStream(socket.getInputStream());
int lengthFromServer = 4;
byte resultArray[] = new byte[lengthFromServer];
dis.readFully(result);
String result = new String(resultArray);
或者,如果您的服务器将在内容之后添加换行符,则可以更轻松地执行此操作:
Socket socket = new Socket(serverHost, serverPort);
DataInputStream dis = new DataInputStream(socket.getInputStream());
String result = dis.readLine();
答案 1 :(得分:0)
final String resultArrayString = Arrays.toString(resultArray);
System.out.println(resultArrayString.substring(1, resultArrayString.length()-1).replace(" ", "");
我的回答是基于这样的假设:您的主要目的只是以所需的格式打印出阵列。