我试过这个:
public static class ListHelper
{
public static string ToString<T>(this IList<String> list)
{
return string.Join(", ", list.ToArray());
}
public static string ToString<T>(this String[] array)
{
return string.Join(", ", array);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这是行不通的,对于string[]和List<string>.也许我需要一些特殊的注释?
假设我有一个Person看起来像这样的类:
class Person {
constructor(
public firstName: string,
public lastName: string,
public age: number
) {}
}
Run Code Online (Sandbox Code Playgroud)
是否可以覆盖toString()此类中的方法,因此我可以执行以下操作?
function alertMessage(message: string) {
alert(message);
}
alertMessage(new Person('John', 'Smith', 20));
Run Code Online (Sandbox Code Playgroud)
这个覆盖可能看起来像这样:
public toString(): string {
return this.firstName + ' ' + this.lastName;
}
Run Code Online (Sandbox Code Playgroud)
编辑:这实际上有效.请参阅下面的答案了解详情
我想将字符串格式化为十进制,但十进制在小数点后包含一些后续零.我如何格式化它以使那些无意义的0消失?
string.Format("{0}", 1100M);
string.Format("{0}", 1100.1M);
string.Format("{0}", 1100.100M);
string.Format("{0}", 1100.1000M);
Run Code Online (Sandbox Code Playgroud)
显示:
1100
1100.1
1100.100
1100.1000
Run Code Online (Sandbox Code Playgroud)
但我希望它是:
1100
1100.1
1100.1
1100.1
Run Code Online (Sandbox Code Playgroud)
作为参考,这里有其他问题基本上与此重复,我感谢这里给出的答案:
任何人都知道为什么javascript Number.toString函数不能正确表示负数?
//If you try
(-3).toString(2); //shows "-11"
// but if you fake a bit shift operation it works as expected
(-3 >>> 0).toString(2); // print "11111111111111111111111111111101"
Run Code Online (Sandbox Code Playgroud)
我真的好奇为什么它不能正常工作或者它以这种方式工作的原因是什么?我搜索过它,但没有发现任何有用的东西.
我项目的首席开发人员已经将项目的toString()实现称为"pure cruft",并希望将它们从代码库中删除.
我已经说过这样做意味着任何希望显示对象的客户都必须编写自己的代码来将对象转换为字符串,但是回答"是的,他们会".
具体来说,这个系统中的对象是矩形,圆形等图形元素,当前表示是显示x,y,比例,边界等...
那么,人群在哪里撒谎?
什么时候你应该什么时候不应该实现toString?
我知道System.TimeZone类以及DateTime.ToString()方法的许多用法.我无法找到的是一种将DateTime转换为字符串的方法,除了时间和日期信息之外,还包含三个字母的Time Zone缩写(事实上,与StackOverflow的相对工具提示大致相同)时间显示工作).
为了让每个人都能轻松地关注和消费,让我们继续使用StackOverflow示例.如果查看相对时间显示的工具提示,它将显示完整日期,时间包括12小时格式的秒数,AM/PM指定,然后是三字母时区缩写(在他们的情况下为Coordinated)世界时间).我意识到我可以通过使用内置方法轻松获得GMT或UTC,但我真正想要的是它本地的时间 - 在这种情况下,在Web服务器上.
如果我们的Web服务器正在运行Windows Server 2k3并且它的时区设置为CST(或者,直到夏令时切换回来,CDT就是它?),我希望我们的ASP.NET Web应用程序显示相对于该时区的DateTimes以及格式化以在结尾显示"CST".我意识到我可以很容易地对其进行硬编码,但为了健壮,我真的更喜欢基于运行代码的OS环境设置的服务器的解决方案.
现在,除了时区缩写,我使用以下代码:
myDateTime.ToString("MM/dd/yyyy hh:mm:ss tt")
Run Code Online (Sandbox Code Playgroud)
哪个显示:
10/07/2008 03:40:31 PM
所有我想要的(并没有多少,许诺!)是这样说的:
10/07/2008 03:40:31 PM CDT
我可以使用System.TimeZone.CurrentTimeZone并使用它来正确显示"Central Daylight Time"但是......为了简洁起见,这有点太长了.我是不是写了一个字符串操作例程来去掉白色空格和任何非大写字母?虽然这可能有用,但这对我来说似乎非常糟糕......
谷歌搜索和环顾四周并没有产生任何适用于我的具体问题.
我有一个数组,我想转换为逗号分隔的字符串.Array.toString()工作,但如果我有一个相当大的数组,它将不会换行,因为逗号后面没有空格:
document.body.innerHTML = ['css','html','xhtml','html5','css3','javascript','jquery','lesscss','arrays','wordpress','facebook','fbml','table','.htaccess','php','c','.net','c#','java'].toString();
// css,html,xhtml,html5,css3,javascript,jquery,lesscss,arrays,wordpress,facebook,fbml,table,.htaccess,php,c,.net,c#,javaRun Code Online (Sandbox Code Playgroud)
如何在逗号后面加上空格以允许换行/换行?
示例输出:
css, html, xhtml, html5, css3, javascript, jquery, lesscss, arrays, wordpress, facebook, fbml, table, .htaccess, php, c, .net, c#, java
Run Code Online (Sandbox Code Playgroud) 你在Laravel工作时见过这个可爱的错误吗?
Method Illuminate\View\View::__toString() must not throw an exception
Run Code Online (Sandbox Code Playgroud)
我已经看过了,这令人非常恼火.我发现了抛出此错误的两个原因.我只想帮助人们不要花费数小时的时间.
查看以下答案和情况.:)
在Java中,当一个类重写.toString()并且你这样做System.out.println()时会使用它.
class MyObj {
public String toString() { return "Hi"; }
}
...
x = new MyObj();
System.out.println(x); // prints Hi
Run Code Online (Sandbox Code Playgroud)
如何在C++中实现这一点,以便:
Object x = new Object();
std::cout << *x << endl;
Run Code Online (Sandbox Code Playgroud)
会输出一些我选择的有意义的字符串表示Object吗?
在C++ 11及更高版本中,是否允许专用std::to_string于std自定义类型的命名空间?
namespace std {
string to_string(::MyClass const & c) { return c.toString(); }
}
Run Code Online (Sandbox Code Playgroud)
示例用例:
int main() {
MyClass c;
std::cout << std::to_string(c) << std::endl;
}
Run Code Online (Sandbox Code Playgroud) tostring ×10
javascript ×3
.net ×2
c# ×2
c++ ×2
arrays ×1
c++11 ×1
datetime ×1
decimal ×1
format ×1
formatting ×1
java ×1
laravel ×1
numbers ×1
overriding ×1
php ×1
std ×1
string ×1
timezone ×1
typescript ×1