- Статья
- Чтение занимает 2 мин
Для преобразования string
в число используется вызов метода Parse
или TryParse
, который можно найти в числовых типах (int
, long
, double
и т. д.), или используются методы в классе System.Convert.
Немного эффективнее и проще вызвать метод TryParse
(например, int.TryParse("11", out number)
) или метод Parse
(например, var number = int.Parse("11")
). Использование метода Convert более удобно для общих объектов, реализующих IConvertible.
Можно использовать методы Parse
или TryParse
в числовом типе, который предположительно содержит строка, таком как тип System.Int32. Метод Convert.ToInt32 использует Parse внутри себя. Метод Parse
возвращает преобразованное число; метод TryParse
возвращает логическое значение, которое указывает, успешно ли выполнено преобразование, и возвращает преобразованное число в параметр out
. Если строка имеет недопустимый формат, Parse
создает исключение, а TryParse
возвращает значение false
. В случае сбоя операции синтаксического анализа при вызове метода Parse
вы всегда должны использовать обработку исключений, чтобы перехватить FormatException.
Вызов метода Parse или TryParse
Методы Parse
и TryParse
игнорируют пробелы в начале и в конце строки, но все остальные символы должны быть символами, которые образуют соответствующий числовой тип (int
, long
, ulong
, float
, decimal
и т. д.). Любые пробелы в строке, образующие число, приводят к ошибке. Например, можно использовать decimal.TryParse
для анализа «10», «10.3» или » 10 «, но этот метод нельзя использовать для анализа 10 из «10X», «1 0» (обратите внимание на внедренный пробел), «10 .3» (обратите внимание на внедренный пробел), «10e1» (здесь работает float.TryParse
) и т. д. Строку со значением null
или String.Empty невозможно успешно проанализировать. Вы можете проверить наличие NULL или пустой строки, прежде чем пытаться ее проанализировать, вызвав метод String.IsNullOrEmpty.
В указанном ниже примере демонстрируются успешные и неуспешные вызовы методов Parse
и TryParse
.
using System;
public static class StringConversion
{
public static void Main()
{
string input = String.Empty;
try
{
int result = Int32.Parse(input);
Console.WriteLine(result);
}
catch (FormatException)
{
Console.WriteLine($"Unable to parse '{input}'");
}
// Output: Unable to parse ''
try
{
int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
}
// Output: -105
if (Int32.TryParse("-105", out int j))
{
Console.WriteLine(j);
}
else
{
Console.WriteLine("String could not be parsed.");
}
// Output: -105
try
{
int m = Int32.Parse("abc");
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
}
// Output: Input string was not in a correct format.
const string inputString = "abc";
if (Int32.TryParse(inputString, out int numValue))
{
Console.WriteLine(numValue);
}
else
{
Console.WriteLine($"Int32.TryParse could not parse '{inputString}' to an int.");
}
// Output: Int32.TryParse could not parse 'abc' to an int.
}
}
В следующем примере показан один из подходов к анализу строки, которая, как ожидается, будет включать начальные числовые символы (включая шестнадцатеричные символы) и конечные нечисловые символы. Он назначает допустимые символы в начале новой строки перед вызовом метода TryParse. Поскольку анализируемые строки содержат небольшое количество символов, в примере вызывается метод String.Concat для назначения допустимых символов новой строке. Для большей строки можете использовать класс StringBuilder.
using System;
public static class StringConversion
{
public static void Main()
{
var str = " 10FFxxx";
string numericString = string.Empty;
foreach (var c in str)
{
// Check for numeric characters (hex in this case) or leading or trailing spaces.
if ((c >= '0' && c <= '9') || (char.ToUpperInvariant(c) >= 'A' && char.ToUpperInvariant(c) <= 'F') || c == ' ')
{
numericString = string.Concat(numericString, c.ToString());
}
else
{
break;
}
}
if (int.TryParse(numericString, System.Globalization.NumberStyles.HexNumber, null, out int i))
{
Console.WriteLine($"'{str}' --> '{numericString}' --> {i}");
}
// Output: ' 10FFxxx' --> ' 10FF' --> 4351
str = " -10FFXXX";
numericString = "";
foreach (char c in str)
{
// Check for numeric characters (0-9), a negative sign, or leading or trailing spaces.
if ((c >= '0' && c <= '9') || c == ' ' || c == '-')
{
numericString = string.Concat(numericString, c);
}
else
{
break;
}
}
if (int.TryParse(numericString, out int j))
{
Console.WriteLine($"'{str}' --> '{numericString}' --> {j}");
}
// Output: ' -10FFXXX' --> ' -10' --> -10
}
}
Вызов методов класса Convert
В следующей таблице перечислены некоторые методы класса Convert, которые можно использовать для преобразования строки в число.
В данном примере вызывается метод Convert.ToInt32(String) для преобразования входных данных string в значение типа int. Пример перехватывает два наиболее распространенных исключения, которые могут создаваться этим методом, — FormatException и OverflowException. Если итоговое число можно увеличить, не превышая Int32.MaxValue, пример добавляет 1 к результату и отображает вывод.
using System;
public class ConvertStringExample1
{
static void Main(string[] args)
{
int numVal = -1;
bool repeat = true;
while (repeat)
{
Console.Write("Enter a number between −2,147,483,648 and +2,147,483,647 (inclusive): ");
string input = Console.ReadLine();
// ToInt32 can throw FormatException or OverflowException.
try
{
numVal = Convert.ToInt32(input);
if (numVal < Int32.MaxValue)
{
Console.WriteLine("The new value is {0}", ++numVal);
}
else
{
Console.WriteLine("numVal cannot be incremented beyond its current value");
}
}
catch (FormatException)
{
Console.WriteLine("Input string is not a sequence of digits.");
}
catch (OverflowException)
{
Console.WriteLine("The number cannot fit in an Int32.");
}
Console.Write("Go again? Y/N: ");
string go = Console.ReadLine();
if (go.ToUpper() != "Y")
{
repeat = false;
}
}
}
}
// Sample Output:
// Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive): 473
// The new value is 474
// Go again? Y/N: y
// Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive): 2147483647
// numVal cannot be incremented beyond its current value
// Go again? Y/N: y
// Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive): -1000
// The new value is -999
// Go again? Y/N: n
4
Преобразить или приобразить? Как пишется?
10 ответов:
14
0
Что касается данного слова, то здесь конечно, нужно писать приставку -ПРЕ-, так как налицо значение пере, то есть превосходная степень преобразования.
Однако если брать в целом, то может быть по разному и все зависит от семантике слова.
13
0
Какую приставку писать, ПРЕ- или ПРИ-, зависит от значения слова.
Проанализируем значение приставки в заданном слове: она имеет значение приставки «пере-«, поэтому пишется ПРЕОБРАЗИТЬ.
Преобразить — сделать по-иному, переделать образ, форму или вид чего-нибудь.
5
0
Преобразить или «приобразить»?
Чтобы выбрать правильный вариант написания пре- или при-, укажу, что эти приставки они являются смысловыми. Их написание зависит от значения, которое они привносят в слово. Приставка пре- может обозначать превосходную степень признака. Она чаще всего используются в составе качественных прилагательных:
добрый — предобрый = очень добрый;
сильный — пресильный = очень сильный.
Приставка пре- может употребляться в значении приставки пере-. Рассматриваемое слово — это, на мой взгляд, как раз такой случай. Начальное пре-, которое входит в современном русском языке уже в корень (преобраз-и-ть), вносит смысл «переделать, переиначить свой образ».
Поэтому выбираю выриант написания анализируемого слова преобразить.
Слова «приобразить» просто не существует в русском языке.
4
0
В великом и могучем нашем русском языке случаются ситуации, когда у глагола любая приставка из пары ПРИ- и ПРЕ- хороша, просто значение меняется (претворить и притворить, к примеру),
но в случае с «преобразить» — только ПРЕ-, слова «приобразить» нет в языке.
3
0
Поскольку значение этого слова — сделать что-то иначе, по-иному, здесь используется приставка пре-. У нее как раз имеется такое же значение. Так что правильно писать преобразить, тем более что слова приобразить вообще нет в русском языке.
3
0
Глагол «преобразить» пишется с буквой «Е» в первом слоге. Используется при этом только приставка «пре-«. Всегда. Во всех случаях. В любой ситуации.
_
Считаю, что начинать рассуждения нужно именно с этого, а уже потом, на десерт, путать читателя «пре-«, «при-«, «разными семантиками» и так далее.
_
Итак, глагол «преобразовать» имеет значение радикальных изменений. Например, если зайти в дом, переложить авторучку с полки на письменный стол, то это не преобразование и не преображение.
Если переставить мебель, перекрасить пол и побелить потолок — то это уже самое настоящее преображение интерьера.
Поэтому и используется только «пре-«, имеющая именно «радикальное» значение.
_
А теперь десерт.
Слово «приобразить» авторы используют в ничтожно редчайших случаях, стилизуя слой текст под просторечный и преображая просторечный (читайте — несуществующий) глагол «обрАзить» (придать некий положительный внешний образ) до значения неполноты — «немножко приобрАзить» (ударение на «А»). Но нас это не касается, так писать нельзя.
2
0
Добрый день, «»преобразить» — у вас написано, верно. Глагол «преобразить» пишется с буквой «Е», однако не с «И». Приставка «Пре».
Если написать вместо преобразить – приобразить это будет грамматической ошибкой. Вот сейчас написал это слово, и на меня «ВОРД» начал ругаться.
1
0
Если мы можем заменить «сомнительную» приставку ПРЕ или ПРИ, на слово с приставкой «пере» (переделать, переложить), то пишем в приставке букву Е.
В слове ПРЕОБРАЗИТЬ, мы может применить это — «переделать Образ», значит пишем через буку Е
Ответ: правильно пишется ПРЕОБРАЗИТЬ.
1
0
А я бы произвел аналогию со словами приукрасить и преукрасить. Ведь именно эти слова ближе всего по счыслу к словам преобразить и приобразить. Да в значении пере пишется преобразить, а вот в смысловом значении приукрасить и пишется приобразить. Конечно слово приобразить встречается редко и даже компьютер, а вернее сказать данная система его не распознает и подчеркивает красной волнистой чертой.
0
0
Очень часто для того, чтобы определить какую из приставок ПРЕ или ПРИ выбрать для написания того или иного слова, приходится вспоминать правила их использования.
В данном слове Преобразить мы используем приставку ПРЕ и вот почему:
Приставка ПРЕ используется, если слово можно заменить синонимом с приставкой ПЕРЕ, а слово Преобразить легко заменяется словом Переделать. Следовательно здесь эта приставка близка по значению к приставке Пере.
Преобразить свой образ можно очень легко, достаточно прогуляться поздно вечером по спальному району любого города.
Читайте также
Все ранее отвечающие на Ваш вопрос совершенно правильно связали написание двойного согласного н
в заданном слове с окончанием его на -ованный. Все слова на «-ованный (-ёванный)» пишутся с двумя «н».
Например: командированный, премированный, унифицированный, корчёванный.
Однако, если это правило не вспоминается или не знается, такое написание легко вывести из правила образования причастий и отглагольных прилагательных.
Давайте разберем заданное слово по составу: сервир/ова/нн/ый (корень/суффикс/суффикс/окончание).
Здесь два суффикса — -ова- и -нн-. Первый суффикс остается от глагола сервир/ова/ть, а второй — суффикс -нн-, при помощи которого обычно образуются причастия страдательные прошедшего времени от глаголов переходных с основой на а(я), как и в причастиях, например, сдела/ть — сдела/нн/ый; связа/ть — связа/нн/ый;
сказа/ть — сказа/нн/ый; рассея/ть — рассея/нн/ый.
Рассматриваемое слово является существительным «душа» в творительном падеже единственного числа.
В данном слове ставится под сомнение, какую из букв О или Ё следует писать после буквы Ш.
Чтобы выяснить, к какому правилу русского языка относится данное правописание, надо определиться, к какой морфеме относится сомнительная буква. Поэтому следует разобрать его по составу: ДУШ — корень, ОЙ — окончание.
Следовательно, сомнительная буква подпадает под правило русского языка, которое гласит: В окончаниях существительных после шипящих под ударением пишется буква О: душой. По аналогии: межой, вожжой, плечом, калачом.
Правильное написание » артобстрел», так как это сложносокращённое слово.
Написание глагольной формы «колышется» осложнено тем, что:
- В ней есть безударное окончание «-ЕТ-» (которое можно ошибочно принять за «-ИТ-«).
- После личного окончания имеется ещё и постфикс «-СЯ«, который несколько запутывает орфографическую картину, усугубляя редукцию заударной «Е» до «ъ«, в результате чего иностранец может написать даже «колыштся».
- Отбрасывание «-СЯ» в методических целях (чтобы проверить «-ет«) ничего точного не даст. В форме «колышет» ударение по-прежнему будет падать на «Ы«, поэтому никакой проверки не состоится.
Нам необходима форма глагола, которая бы стала проверочной. Ею будет инфинитив. Ударение в неопределённой форме («колыхаться» либо, если мешает «-СЯ«, то «колыхать») попадает на «-АТЬ«. Это нужное место, которое определяет спряжение глагола (1-е спряжение).
Грамматический признак, который мы только что определили, не позволяет писать «колышится».
Например:
- «Взволнованно колышется грудь», «лениво колышется туман», беспомощно колышется лепесток», «соблазнительно колышется юбка», «торжественно колышется занавес».
Слово «любящая» является действительным причастием настоящего времени и ошибиться здесь можно в правописании суффикса -ащ/ющ-.
Все зависит от спряжения глагола, от которого образовано причастие «любящая».
Любящая — (что делать?) любить, оканчивается на -ить- не является исключением, значит — 2-ое спряжение: любит, любят, любящая.
Правильный ответ — любящая.