Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
string sample = ",liger, unicorn, snipe";
sample = sample.TrimStart(','); // to remove just the first comma
Или возможно:
sample = sample.Trim().TrimStart(','); // to remove any whitespace and then the first comma
Вы имели в виду обрезку все экземпляры"", в той строке?
В этом случае можно сделать:
s = s.Replace(",", "");
Просто используйте Подстроку, чтобы проигнорировать первый символ (или присвоить его другой строке);
string o = ",liger, unicorn, snipe";
string s = o.Substring(1);
string s = ",liger, tiger";
if (s.Substring(0, 1) == ",")
s = s.Substring(1);
См.: http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx
string animals = ",liger, unicorn, snipe";
//trimmed will contain "liger, unicorn, snipe"
string trimmed = word.Trim(',');
можно использовать это
, лигр, единорог, стреляет из укрытия".TrimStart ('');
if (s.StartsWith(",")) {
s = s.Substring(1, s.Length - 1);
}
string t = ",liger, unicorn, snipe".TrimStart(new char[] {','});
Отметьте, исходную строку оставляют нетронутой, Trim возвратит Вас новая строка:
string s1 = ",abc,d";
string s2 = s1.TrimStart(",".ToCharArray());
Console.WriteLine("s1 = {0}", s1);
Console.WriteLine("s2 = {0}", s2);
печать:
s1 = ,abc,d
s2 = abc,d
вот простой способ не произвести ведущую запятую для начала:
string[] animals = { "liger", "unicorn", "snipe" };
string joined = string.Join(", ", animals);
Попробуйте строку. Обрезка ('') и видит, делает ли это то, что Вы хотите.
Строки .NET могут сделать Trim () и TrimStart (). Поскольку это берет params
, можно записать:
",liger, unicorn, snipe".TrimStart(',')
и если у Вас есть больше чем один символ для обрезки, можно записать:
",liger, unicorn, snipe".TrimStart(",; ".ToCharArray())
строка. TrimStart ('') удалит запятую, однако Вы испытаете затруднения из-за операции разделения из-за пространства после запятой. Лучше всего присоединиться только на единственной запятой или использовании
Разделение (", ".ToCharArray (), StringSplitOptions. RemoveEmptyEntries);
", лигр, единорог, стреляет из укрытия".Trim ('')-> "лигр, unicor, бекас"
string s = ",liger, unicorn, snipe";
s.TrimStart(',');
string s = ",liger, unicorn, snipe";
s = s.TrimStart(',');
Важно присвоить результат TrimStart к переменной. Как это говорит на странице TrimStart, "Этот метод не изменяет значение текущего экземпляра. Вместо этого это возвращает новую строку...".
В.NET не изменяются строки.