У меня есть ссылочный номер следующего типа DAA76647.1, который я хочу преобразовать без изменений в строку в Mathematica.
То есть
myfn [DAA76647.1]
дает в качестве вывода
"DAA76647.1"
Есть ли простой способ сделать это?(Входные данные не могут быть строкой и, кроме преобразования в строку, я не хочу изменять входные данные любым другим способом).
Обновление
ToString /@ {A1234, 1234.1, A1234 .5}
дает следующий вывод (где я просто ввел все с клавиатуры)
{"A1234", "1234.1", "0.5 A1234"}
Похоже, что если то, что идет до десятичной точки, является буквенно-цифровым, возникает проблема.
Возможный обходной путь
На основании предложенного решения David Carraher , возможный метод выглядит следующим образом:
ToString[# /.a_ b_ :> ToString[b] <> StringDrop[ToString[a], 1]] & /@ {A1234,
1234.1, A1234 .5}
, выдавая в качестве вывода:
{"A1234", "1234.1", "A1234.5"}
Кажется, это работает нормально, при условии, что то, что идет после десятичной запятой, не является буквенно-цифровым, и при условии, что то, что предшествует, не начинается с нуля (например, 0A123.1).
Если буквенно-цифровые символы встречаются только после десятичной точки, это может быть включено
StringReplace[ToString[123.45 B55c], Whitespace -> ""]
, но если буквенно-цифровые символы встречаются до и после десятичной точки, число по-прежнему необходимо вводить в виде строки.
оригинальное предложение Дэвида Каррахера
f[Times[a_, b_]] := ToString[b] <> ToString[a]