相关疑难解决方法(0)

为什么在Rust中将字符串的第一个字母大写如此复杂?

我想把a的第一个字母大写&str.这是一个简单的问题,我希望有一个简单的解决方案.直觉告诉我做这样的事情:

let mut s = "foobar";
s[0] = s[0].to_uppercase();
Run Code Online (Sandbox Code Playgroud)

但是&strs不能像这样编入索引.我能够做到这一点的唯一方法似乎过于复杂.我将转换&str为迭代器,将迭代器转换为向量,大写为向量中的第一项,它创建了一个迭代器,我将其编入索引,创建一个Option,我打开它给我一个上面的首字母.然后我将矢量转换为迭代器,我将其转换为a String,我将其转换为a &str.

let s1 = "foobar";
let mut v: Vec<char> = s1.chars().collect();
v[0] = v[0].to_uppercase().nth(0).unwrap();
let s2: String = v.into_iter().collect();
let s3 = &s2;
Run Code Online (Sandbox Code Playgroud)

有没有比这更简单的方法,如果有,那又怎样?如果没有,为什么Rust以这种方式设计?

类似的问题

string rust uppercase

58
推荐指数
5
解决办法
5478
查看次数

我在哪里可以找到操作的复杂性?

这个答案中提到,对于一个字符串来说 s.chars().count(),获取字符数是一个O(n)操作.对于简单的ASCII字符串,也可以使用函数获取字节数s.len().当使用检查以确保所有这些字节实际上是ASCII时,这可能是安全的.

我想知道该操作的复杂程度.它可能仍然必须像在C中一样找到字符串的结尾并且是O(n).

我试图查找它并找到适用的文档std::string::Strings.然而,它并未说明其复杂性.看看它的来源就是这样做的self.vec.len().所以我们去看看矢量文档,发现这只是返回一个存储长度self.len,这意味着这确实是一个O(1)操作.

那是很多工作.现在来谈谈,此案s是一个的std ::海峡?我试图做同样的事情,但陷入了困境.

Rust中的操作复杂性是否有更容易访问的资源?

Python这个列表的东西会很棒.

rust

9
推荐指数
1
解决办法
299
查看次数

是否有替代的正则表达式语法来避免错误“不支持环视,包括向前查找和向后查找”?

我尝试实现这个正则表达式来检查字符串 ( "username") 的长度是否在 3 到 30 之间,仅包含字母 (az)、数字 (0-9) 和句点 (.)(不连续):

use regex::Regex; // 1.3.5

fn main() {
    Regex::new(r"^(?=.{3,30}$)(?!\.)(?!.*\.$)(?!.*?\.\.)[a-z0-9.]+$").unwrap();
}
Run Code Online (Sandbox Code Playgroud)

当尝试编译正则表达式时,我收到此错误:

use regex::Regex; // 1.3.5

fn main() {
    Regex::new(r"^(?=.{3,30}$)(?!\.)(?!.*\.$)(?!.*?\.\.)[a-z0-9.]+$").unwrap();
}
Run Code Online (Sandbox Code Playgroud)

是否有替代的正则表达式或方法来根据这些要求验证字符串?

我可以按照建议删除长度{3,30}并获取字符串长度,但对于第二部分(?!\.)(?!.*\.$)(?!.*?\.\.)[a-z0-9.]+$(防止连续点)?

regex rust

9
推荐指数
1
解决办法
6169
查看次数

打印从标准输入读取的字符串时如何忽略换行符?

我尝试编写一些代码,从标准输入读取名称并打印出来。问题是在打印变量后立即换行,变量后面的字符打印在下一行:

use std::io;

fn main() {
    println!("Enter your name:");
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed To read Input");
    println!("Hello '{}'!", name);
}
Run Code Online (Sandbox Code Playgroud)

这 '!' 打印在下一行,这不是预期的位置。

在此处输入图片说明

printing input rust

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

标签 统计

rust ×4

input ×1

printing ×1

regex ×1

string ×1

uppercase ×1