问题 获得特殊字符的数量?

Programadoro

新成员
已加入
2020年4月25日
留言内容
4
编程经验
5-10
如何获得我的短语中包含的特殊字符的数量,并显示它们的含义?
如何在单行中显示没有特殊字符的句子?
当我在一行上阅读所有四个笔记时,因为我擅长C语言,而且我知道我可以为此使用单个scanf。

C#:
using System;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //especificando caracteres exclusivos
            string[] separatingStrings = { "<<", "...", "<" };
            //escrevendo uma frase qualquer
            string text = "one<<two......three<four";
            //imprimindo a frase
            System.Console.WriteLine($"Original text: '{text}'");
            //separando texto dos caracteres exclusivos
            string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
            //quantidade de palavras no texto sem os caracteres exclusivos
            System.Console.WriteLine($"{words.Length} Palavras no texto:");
            //imprimindo texto sem os caracteres
            foreach (var word in words)
            {
                System.Console.WriteLine(word);
            }
        }
    }
}

C#:
using System;

namespace ConsoleSharp
{
    class Program
    {
        static void Main()
        {
            int nota1, nota2, nota3, nota4, media;
            Console.WriteLine("Entre com 4 notas !");
            //ReadLine() retorna uma String, por isso, é preciso converter.
            nota1 = Convert.ToInt32(Console.ReadLine());
            nota2 = Convert.ToInt32(Console.ReadLine());
            nota3 = Convert.ToInt32(Console.ReadLine());
            nota4 = Convert.ToInt32(Console.ReadLine());
            media = (nota1 + nota2 + nota3 + nota4) / 4;
            Console.WriteLine("MEDIA:" + media);
        }
    }
}
 
由主持人最后编辑:

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,936
地点
英国
编程经验
10+
您好,欢迎来到论坛。

发布到论坛时,请使用代码标签。我已经编辑了您的信息,这次为您添加了它们。

我想象有5-10年经验的人会知道您问题的答案。您是否使用其他语言编程?
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,936
地点
英国
编程经验
10+
第一段代码有什么问题?

您能否解释一下您的代码存在的问题,期望发生的事情以及实际发生的事情?人们通常用代码写的不是他们想要做的。

In regards this : System.Console.WriteLine($"{words.Length} Palavras no texto:"); - Are you trying to get how many chars in total or how many words?
If trying to get how many chars, you need to add each index up from each position in the string[] by calling .Length on the index [position index here].Length.
单行显示没有特殊字符的句子?
Create a variable outside for each statement and use String.Concat(); to combine them with the variable in your foreach statement from inside the foreach statement.
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,936
地点
英国
编程经验
10+
这将它们全部放在一行上。您仅缺少通过调用string.Concat()进行的某些字符串合并。
C#:
            string result = string.Empty;
            foreach (var word in words)
            {
                result = string.Concat(result, " ", word);
                Console.WriteLine(result);
            }
如果我正确理解了您的问题,这将告诉您字符串数组中每个位置有多少个字符:
C#:
Console.WriteLine($"Length { separatingStrings[0].Length + separatingStrings[1].Length + separatingStrings[2].Length }");
To also show each one, write out their positions : splittingStrings[0] If this isn't quite what you're asking, let me know and I will check in later when I will have more time. ;)

要冲出去,要做的事情。
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,060
地点
挪威
编程经验
10+

Programadoro

新成员
已加入
2020年4月25日
留言内容
4
编程经验
5-10
第一段代码有什么问题?
问题是在代码中说出哪些字符在句子中是特殊字符之后。我无法告诉您该短语有多少个特殊字符以及它们是什么。
Create a variable outside for each statement and use String.Concat(); to combine them with the variable in your foreach statement from inside the foreach statement.




你能给我举个例子吗?


是的,我来自巴西,我想学习这种编程语言,因为它赚了很多钱
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,936
地点
英国
编程经验
10+
我刚在发布时 #4

使用拆分后的字符串,计数应比数组中的字符串数少一。
虽然这个问题有些混乱,但我认为主要是因为语言翻译。按照您的建议进行操作只会计算3次,因为这将计算出 splittingStrings 大批。还是我再次误会你了?

我想 @programadoro 想知道多少 特别的 字符位于字符串数组中。但是根据他的最新答复,由于OP不知道有多少,这听起来会变得更加复杂 特别的 字符将存在。正则表达式 @约翰·H?
 

Programadoro

新成员
已加入
2020年4月25日
留言内容
4
编程经验
5-10
C#:
string result = string.Empty;
foreach (var word in words)
{
result = string.Concat(result, " ", word);
Console.WriteLine(result);
}
如果我正确理解了您的问题,这将告诉您字符串数组中每个位置有多少个字符:
C#:
Console.WriteLine($"Length { separatingStrings[0].Length + separatingStrings[1].Length + separatingStrings[2].Length }");
谢谢你
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,060
地点
挪威
编程经验
10+
还是我再次误会你了?
我不知道(西班牙语),只是猜测 :翻白眼: 我试图养成自己在自己的代码中使用英语的习惯,无论是在元素名称还是代码注释中都使用英语,当我将某些东西快速拼凑在一起时,常常会混合使用本国语言和英语,结果即使对于我来说也很混乱。我必须重新命名和翻译它。

然后是Join方法:
C#:
Console.WriteLine($"{words.Length} Palavras no texto: {String.Join(",", words)}");
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,936
地点
英国
编程经验
10+
这比循环更整洁,而性能没有差异,我更喜欢string.Join加入foreach迭代器。

还有另一个问题 @约翰·H。他不知道string []中可能包含哪些特殊字符。我当时认为最好使用正则表达式来检查他知道将在字符串数组中的特定字符模式。是的,他也可以使用Linq,但是我认为这对Regex来说是最好的工作?您的想法与此有关,因为我的大脑不在适当的自动提款机中。

@programadoro you're welcome.
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,560
地点
弗吉尼亚州切萨皮克
编程经验
10+
什么定义特殊字符?它是不是不是字母数字且不是空格的任何字符吗?还是有一组特定的字符被视为特殊字符?

Right now, based on the code from the original post, it looks like it is actually special strings splittingStrings, not special characters that he is concerned about.
 
最佳 底部