在Stack Exchange上发布答案之前,我希望能够编写和测试我的代码。如果我将可工作的代码复制到Stack Exchange上,每行代码都会缩进太多。
如何在不需要缩进的情况下传输代码?
在Stack Exchange上发布答案之前,我希望能够编写和测试我的代码。如果我将可工作的代码复制到Stack Exchange上,每行代码都会缩进太多。
如何在不需要缩进的情况下传输代码?
您可以按下shift+tab
多次以删除额外的缩进,然后复制,再按ctrl+z
撤消。
结果:
/**
* Process clumsy/user-submitted values to extract numeric from them
*
* Helper::recognizeNumber('1.123.456,789 0123 456 ') // => 1123456.7890123456
* Helper::recognizeNumber(' -12,30 ') // => -12.3
* Helper::recognizeNumber('12,34 ', round: 0) // => -12
*/
public static function recognizeNumber(mixed $number): float
{
if (! $number) {
return 0.0;
}
if (str_contains($number, '.') && str_contains($number, ',')) {
$positionOfDot = strpos($number, '.');
$positionOfComa = strpos($number, ',');
// dot is thousand separator
if ($positionOfDot < $positionOfComa) {
$number = str_replace('.', '', $number);
} else {
// coma is thousand separator
$number = str_replace(',', '', $number);
}
}
$number = str_replace(',', '.', $number);
$number = preg_replace('/[^\d.-]+/', '', $number);
return (float)$number;
}
虽然我希望有一个适用于Intellij的插件。