var dataform = new FormData($("#myform")[0]);
//console.log(dataform);
$.ajax({
url: 'url',
type: 'POST',
data: dataform,
async: false,
success: function (res) {
response data;
},
cache: false,
contentType: false,
processData: false
});
Лучше всего, чтобы просто удалить любой ведущий разделитель:
String input = "/Test/Stuff";
String[] test = input.replaceFirst("^/", "").split("/");
Вы можете сделать его более общим, поставив его в метод:
public String[] mySplit(final String input, final String delim)
{
return input.replaceFirst("^" + delim, "").split(delim);
}
String[] test = mySplit("/Test/Stuff", "/");
Я думаю, вам придется вручную удалить первую пустую строку. Простой способ сделать это -
String string, subString;
int index;
String[] test;
string = "/Test/Stuff";
index = string.indexOf("/");
subString = string.substring(index+1);
test = subString.split("/");
Это исключает ведущую пустую строку.
"Test/Stuff"
будет давать только один элемент, «Stuff».
– Joe Attardi
22 February 2012 в 07:45
Я думаю, что нет встроенной функции для удаления пустой строки в Java. Вы можете удалить пустую строку удаления, но это может привести к ошибке. Для безопасности вы можете сделать это, написав небольшой фрагмент кода следующим образом:
List<String> list = new ArrayList<String>();
for(String str : test)
{
if(str != null && str.length() > 0)
{
list.add(str);
}
}
test = stringList.toArray(new String[list.size()]);
Я не думаю, что вы можете сделать это с помощью встроенного метода split
. Таким образом, у вас есть два варианта:
1) Сделайте свой собственный split
2) Итерации через массив после вызова split и удаления пустых элементов
Если вы сделаете свой вы можете просто объединить эти два параметра
public List<String> split(String inString)
{
List<String> outList = new ArrayList<>();
String[] test = inString.split("/");
for(String s : test)
{
if(s != null && s.length() > 0)
outList.add(s);
}
return outList;
}
, или вы можете просто проверить, находится ли разделитель в первой позиции, прежде чем вы вызовете split и проигнорируете первый символ, если это произойдет:
String delimiter = "/";
String delimitedString = "/Test/Stuff";
String[] test;
if(delimitedString.startsWith(delimiter)){
//start at the 1st character not the 0th
test = delimitedString.substring(1).split(delimiter);
}
else
test = delimitedString.split(delimiter);
Вот как я обошел эту проблему. Я беру строку, вызываю .toCharArray () на ней, чтобы разбить ее на массив символов, а затем пропустить этот массив и добавить его в список строк (обертывание каждого символа с помощью String.valueOf). Я предполагаю, что есть компромисс производительности, но это похоже на читаемое решение. Надеюсь это поможет!
char[] stringChars = string.toCharArray();
List<String> stringList = new ArrayList<>();
for (char stringChar : stringChars) {
stringList.add(String.valueOf(stringChar));
}
Apache Commons имеет метод утилиты для этого: org.apache.commons.lang.StringUtils.split
На самом деле в нашей компании мы теперь предпочитаем использовать этот метод для разделения во всех наших проектах.
Для этой цели вы можете использовать StringTokenizer
...
String test1 = "/Test/Stuff";
StringTokenizer st = new StringTokenizer(test1,"/");
while(st.hasMoreTokens())
System.out.println(st.nextToken());
StringTokenizer
помечен как устаревший в API и, вероятно, не должен использоваться.
– Hunter McMillen
22 February 2012 в 07:37
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
– Hunter McMillen
22 February 2012 в 07:50