相关疑难解决方法(0)

为什么字符串在Java和.NET中不可变?

为什么他们决定在Java和.NET(以及其他一些语言)中使字符串不可变?他们为什么不让它变得可变?

.net java string mutable

189
推荐指数
9
解决办法
4万
查看次数

C#中的可变字符串和不可变字符串有什么区别?

C#中的可变字符串和不可变字符串有什么区别?

c# string

188
推荐指数
8
解决办法
22万
查看次数

在C#中比较字符串和对象

看到这段代码:

object x = "mehdi emrani";
string y = "mehdi emrani";
Console.WriteLine(y == x);
Run Code Online (Sandbox Code Playgroud)

返回true.

但是这段代码:

object x = "mehdi emrani";
string y = "mehdi ";
y += "emrani";
Console.WriteLine(y == x);
Run Code Online (Sandbox Code Playgroud)

回报false.

因此,当我在第一个代码中比较String和Object时,我得到了true.
但是当我在第二个代码中比较它时,我得到了false.

两个字符串都相同,但为什么当我追加到字符串时,我的结果会返回false

.net c# string

64
推荐指数
6
解决办法
1万
查看次数

不可变字符串vs std :: string

我最近一直在阅读有关不可变字符串的原因为什么字符串在Java和.NET中不可变为什么.NET字符串是不可改变的?以及为什么D选择不可变字符串的一些东西.似乎有很多好处.

  • 平凡的线程安全
  • 更安全
  • 在大多数用例中,内存效率更高.
  • 便宜的子串(标记化和切片)

更不用说大多数新语言都有不可变的字符串,D2.0,Java,C#,Python等.

C++会从不可变字符串中受益吗?

是否有可能在c ++(或c ++ 0x)中实现具有所有这些优点的不可变字符串类?


更新:

在不可变字符串const_stringfix_str上有两次尝试.五年内都没有更新.它们甚至被使用过吗?为什么const_string没有进入boost?

c++ string immutability

61
推荐指数
3
解决办法
3万
查看次数

为什么字符串在许多编程语言中是不可变的?

可能重复:
为什么字符串在Java和.NET中不可变?
为什么.NET String是不可变的?

为此选择了几种语言,例如C#,Java和Python.如果它旨在为比较等操作节省内存或提高效率,它对连接和其他修改操作有什么影响?

c++ java string immutability

59
推荐指数
2
解决办法
1万
查看次数

如何更改字符串中的1个字符?

我有这个代码:

string str = "valta is the best place in the World";
Run Code Online (Sandbox Code Playgroud)

我需要更换第一个符号.当我尝试这个:

str[0] = 'M';
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误.我怎样才能做到这一点?

.net c# string

39
推荐指数
8
解决办法
10万
查看次数

替换字符串中的反斜杠

我在尝试在C#.net上的日期字符串中替换反斜杠时遇到一些问题.

到目前为止,我正在使用:

string.Replace(@"\","-")
Run Code Online (Sandbox Code Playgroud)

但它还没有完成更换.有人可以帮忙吗?

.net c# string

19
推荐指数
2
解决办法
6万
查看次数

使用PadRight方法填充字符串

我想在C#中为字符串末尾添加空格:

Trip_Name1.PadRight(20);
Run Code Online (Sandbox Code Playgroud)

还尝试过:

Trip_Name1.PadRight(20,' ');
Run Code Online (Sandbox Code Playgroud)

这似乎都不起作用.但是我可以用任何其他角色填充字符串.为什么?

我应该更具体,这里是完整的代码:

lnk_showmatch_1.Text = u_trip.Trip_Name1.PadRight(20,' ');
Run Code Online (Sandbox Code Playgroud)

.net c# string

18
推荐指数
1
解决办法
3万
查看次数

Delphi XE4不可变字符串

使用适用于iOS平台的Delphi XE4,引入了一种新的字符串类型:不可变的基于零的字符串.到目前为止,Delphi在写可变字符串上有副本.所以问题是,这对我未来的编程意味着什么?一种字符串类型比另一种字符串有什么优势吗?当切换到新的字符串类型时,我需要注意哪些陷阱(除了明显的0对1基数)?

delphi delphi-xe4

16
推荐指数
1
解决办法
1787
查看次数

当两者都是引用类型时,字符串与类

这是我上一次采访的方式:

问题:字符串存储在哪里?

答:堆是因为它是参考类型

问题:请解释以下代码:

static void Main(string[] args)
{
     string one = "test";
     string two = one;
     one = one + " string";

     Console.WriteLine("One is {0}" , one);
     Console.WriteLine("Two is {0}", two);
}
Run Code Online (Sandbox Code Playgroud)

答案:画了两张如下图:

(代表声明, string two = one;

在此输入图像描述

(代表语句, one = one + " string";.在堆上创建一个新字符串并分配)

在此输入图像描述

问题:正确.为下面的代码片段绘制类似的内容:

class Program
{
    static void Main(string[] args)
    {
        Test one = new Test { someString = "test" };
        Test two = one;
        one.someString = "test String";

        Console.WriteLine("One …
Run Code Online (Sandbox Code Playgroud)

.net c# string class immutability

13
推荐指数
1
解决办法
307
查看次数

标签 统计

string ×9

.net ×6

c# ×6

immutability ×3

c++ ×2

java ×2

class ×1

delphi ×1

delphi-xe4 ×1

mutable ×1