Convert.ToString()
和之间有什么区别.ToString()
?
我在网上发现了很多不同之处,但主要区别是什么?
我正在尝试使用该toString(int[])
方法,但我认为我做错了:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString(INT [])
我的代码:
int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;
System.out.println(array.toString());
Run Code Online (Sandbox Code Playgroud)
输出是:
[I@23fc4bec
Run Code Online (Sandbox Code Playgroud)
我也尝试过像这样打印,但是:
System.out.println(new String().toString(array)); // **error on next line**
The method toString() in the type String is not applicable for the arguments (int[])
Run Code Online (Sandbox Code Playgroud)
我从更大更复杂的代码中获取了这些代码,但是如果需要我可以添加它.但这应该提供一般信息.
我正在寻找输出,就像在Oracle的文档中一样:
字符串表示由数组元素的列表组成,用方括号括起来("[]").相邻元素由字符","(逗号后跟空格)分隔.
我的值enum
是需要在其中包含空格的单词,但枚举不能在其值中包含空格,因此它们全部聚集在一起.我想覆盖toString()
添加这些空格我告诉它.
当我使用valueOf()
添加空格的相同字符串时,我还希望枚举能够提供正确的枚举.
例如:
public enum RandomEnum
{
StartHere,
StopHere
}
Run Code Online (Sandbox Code Playgroud)
呼叫toString()
上RandomEnum
,其值是StartHere
返回字符串"Start Here"
.调用valueof()
相同的字符串("Start Here"
)返回枚举值StartHere
.
我怎样才能做到这一点?
来自Java背景,我明白__str__
这就像是toString的Python版本(虽然我确实认识到Python是较旧的语言).
所以,我已经定义了一个小类以及__str__
如下方法:
class Node:
def __init__(self, id):
self.id = id
self.neighbours = []
self.distance = 0
def __str__(self):
return str(self.id)
Run Code Online (Sandbox Code Playgroud)
然后我创建了一些它的实例:
uno = Node(1)
due = Node(2)
tri = Node(3)
qua = Node(4)
Run Code Online (Sandbox Code Playgroud)
现在,尝试打印其中一个对象时的预期行为是打印相关值.这也发生了.
print uno
Run Code Online (Sandbox Code Playgroud)
产量
1
Run Code Online (Sandbox Code Playgroud)
但是当我做以下事情时:
uno.neighbours.append([[due, 4], [tri, 5]])
Run Code Online (Sandbox Code Playgroud)
然后
print uno.neighbours
Run Code Online (Sandbox Code Playgroud)
我明白了
[[[<__main__.Node instance at 0x00000000023A6C48>, 4], [<__main__.Node instance at 0x00000000023A6D08>, 5]]]
Run Code Online (Sandbox Code Playgroud)
在哪里我期待
[[2, 4], [3, 5]]
Run Code Online (Sandbox Code Playgroud)
我错过了什么?还有什么其他令人讨厌的东西我在做什么?:)
当我console.log()
在JavaScript程序中的一个对象时,我只看到输出[object Object]
,这对于确定它是什么对象(甚至是什么类型的对象)没有多大帮助.
在C#中,我习惯于重写ToString()
以能够自定义对象的调试器表示.我能在JavaScript中做些什么吗?
当我调用toString
函数调用中收到的对象时,我得到了这个.我知道对象的类型是在这个字符串中编码的,但我不知道如何阅读它.
这种类型的编码叫什么?
我有一个vector<int>
有整数的容器(例如{1,2,3,4}),我想转换为表格的字符串
"1,2,3,4"
Run Code Online (Sandbox Code Playgroud)
在C++中最干净的方法是什么?在Python中,我就是这样做的:
>>> array = [1,2,3,4]
>>> ",".join(map(str,array))
'1,2,3,4'
Run Code Online (Sandbox Code Playgroud) 有两种方法可以增加调试信息的有用性,而不是{MyNamespace.MyProject.MyClass}
在调试器中查看.
这些是使用[DebuggerDisplayAttribute][1]
和ToString()
方法.
using System.Diagnostics;
...
[DebuggerDisplay("Name = {Name}")]
public class Person
{
public string Name;
}
Run Code Online (Sandbox Code Playgroud)
要么
public class Person
{
public string Name;
public override string ToString()
{
return string.Format("Name = {0}", Name);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有理由更喜欢一个到另一个?有什么理由不这两个都做?这纯粹是个人偏好吗?
该strings.Join
函数仅接受字符串切片:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
Run Code Online (Sandbox Code Playgroud)
但是能够传递实现ToString()
函数的任意对象会很好.
type ToStringConverter interface {
ToString() string
}
Run Code Online (Sandbox Code Playgroud)
在Go中是否存在类似的东西,或者我是否必须int
使用ToString方法来装饰现有类型并编写包装器strings.Join
?
func Join(a []ToStringConverter, sep string) string
Run Code Online (Sandbox Code Playgroud) 我正在研究加密MD5,我在谷歌找到了这个代码
public string CalculateMD5Hash(string input)
{
// Primeiro passo, calcular o MD5 hash a partir da string
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
// Segundo passo, converter o array de bytes em uma string haxadecimal
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但为什么它使用ToString("X2")?ToString正常有什么区别?