Когда приложение обменивается данными с серверами, используя сетевой трафик в виде открытого текста, например HTTP, это может повысить риск подслушивания и фальсификации контента. Третьи лица могут вводить несанкционированные данные или передавать информацию о пользователях. Вот почему разработчикам рекомендуется защищать только трафик, такой как HTTPS.
Попробуйте это решение: https://stackoverflow.com/a/54918763/6676310
Alnitak is correct that trailing empty strings will be discarded by default.
If you want to have trailing empty strings, you should use split(String, int)
and pass a negative number as the limit
parameter.
The
limit
parameter controls the number of times the шаблон применяется и, следовательно, влияет на длину результирующего массив. Если предел n больше нуля, то шаблон будет применяться самое большее n - 1 раз, массив длина будет не больше n , а последняя запись массива будет содержать все входные данные за последним согласованным разделителем. Если n не является положительным, то шаблон будет применяться столько раз, сколько возможно, и массив может иметь любую длину. Если n равно нулю, то шаблон будет применяться столько раз, сколько возможно, массив может have any length, and trailing empty strings will be discarded.
Note that split(aString)
is a synonym for split(aString, 0)
:
This method works as if by invoking the two-argument
split
method with the given expression and a limit argument of zero. Trailing empty strings are therefore not included in the resulting array.
Also, you should use a loop to get the values from the array; this avoids a possible ArrayIndexOutOfBoundsException
.
So your corrected code should be (assuming you want the trailing empty strings):
String sample = "::";
String[] splitTime = sample.split(":", -1);
for (int i = 0; i < splitTime.length; i++) {
System.out.println("Value " + i + " : \"" + splitTime[i] + "\"");
}
Output:
Value 0 : "" Value 1 : "" Value 2 : ""
Trailing поэтому пустые строки не включаются в результирующий массив.
Итак, если вы передадите в « ::
« вы »
Like this perhaps?
int ndx = 0;
StringTokenizer t = new StringTokenizer(": : ::::",":");
while (t.hasMoreElements())
{
System.out.println(String.format("Value %d : %s", ++ndx,t.nextElement()));
}
Используйте функцию StringTokenizer, в которой вы передаете строку и второй аргумент в качестве разделителя
, используйте функцию splittime.length для найти длину