C# 比较C语言中的字符串长度#

C# 比较C语言中的字符串长度#,c#,string,string-length,C#,String,String Length,我需要做一个函数,确定两个输入的较长单词。我曾尝试使用if语句和String.Length,但我无法正确使用它。实现该功能的最佳方式是什么? 下面是主要程序 using System; using System.Collections.Generic; using System.Linq; using System.Text; public class LongerWord { public static void Main(string[] args) {

我需要做一个函数,确定两个输入的较长单词。我曾尝试使用if语句和
String.Length
,但我无法正确使用它。实现该功能的最佳方式是什么? 下面是主要程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class LongerWord
{
    public static void Main(string[] args) 
    {
        Console.Write("Give 1. word >");
        String word1 = Console.ReadLine();
        Console.Write("Give 2. word >");
        String word2 = Console.ReadLine();
        String longer = LongerString(word1, word2);
        Console.WriteLine("\"" + longer + "\" is longer word");
        Console.ReadKey();
    }
}

这应该是…某件事的开始

private string LongerString(string x, string y)
{
    return x.Length > y.Length ? x : y;
}

我不明白为什么使用
stringName.Length
不起作用。请看以下代码:

Console.Write("Give 1. word >");
string word1 = Console.ReadLine();
Console.Write("Give 2. word >");
string word2 = Console.ReadLine();

if(word1.Length > word2.Length)
{
    Console.Write("String One is longer.");
}
else
{
    Console.Write("String Two is longer.");
}
作为一项功能,它希望:

namespace String_Length
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Give 1. word >");
            string word1 = Console.ReadLine();
            Console.Write("Give 2. word >");
            string word2 = Console.ReadLine();

            CompareStrings(word1, word2); 
            Console.ReadKey();
        }

        static void CompareStrings(string one, string two)
        {
            if (one.Length > two.Length)
            {
                Console.Write("String One is longer.");
            }
            else
            {
                Console.Write("String Two is longer.");
            }
        }
    }
}
如果两个字符串的长度彼此相等,您可能还需要添加代码,可能需要使用try-catch块。
我希望这能有所帮助。

所以我知道了如何正确地执行该功能,感谢您的帮助!我不得不使用返回语句。如果单词长度相同,则第一个单词必须是显示的单词。以下是我得到的:

public static string LongerString(string word1 , string word2)
        {
            if (word1.Length >= word2.Length)
            {
                return word1;
            }
            else
            {
                return word2;
            }
        }

LongerWord
方法中发生了神奇的变化,因此您也必须包含该代码。请注意,您需要知道您在这里测量的是什么。一个简单的实现会比较两个字符串的
.Length
属性,但是由于您已经明确指定了较长的单词,这实际上可能并不正确,这取决于您对“单词长度”的定义
string.Length
返回转换为unicode码点的字符数,可见字符不能仅转换为一个这样的码点,字符
a
可以同时编码为单个字符和两个字符,字母
a
和变音符号“`”。例如,考虑字符串<代码>字符串s=“a\u003a\u003a\u0300”;
,此字符串比单词
“word”
长还是短?(注意,第一个字符串将显示为
ààà
,但长度为6)。我还要指出,根据您正在制作的类型或程序判断,我非常确定这是家庭作业或其他与学校相关的任务,在这种情况下,我上面说的所有内容都可以在“很高兴知道”下存档但最有可能的是你完全可以忽略的东西。不过,如果这是学校作业,你需要交些东西,如果你做得对的话,关于上述事情的一条说明甚至可能值得额外表扬。我怀疑OP会理解,当他用
if
@trailmax解决这个问题时,如果你认为OP是家庭作业并且没有表现出努力,那么你应该对它投反对票。@Filburt对1分用户投反对票没有意义。我投票决定结束这个问题。@Filburt。。谢谢你的支持。。面对面-我认为任何可能帮助他人的问题都值得回答。@trailmax从这个问题判断,OP似乎在自己完成任务之前尽了自己的努力。因此,这个问题完全可以接受。@trailmax你怎么知道这是家庭作业呢。有人问了一个问题,我们的工作是回答这个问题,而不是判断我们是否应该这样做。此外,即使是家庭作业,至少他学到了一些东西。总比他什么都不学好。顺便说一句,我知道当你一次又一次地尝试代码却无法正常工作时,你会有多么疯狂。我今年14岁,曾面临过许多类似的问题。@trailmax家庭作业的问题不是这个问题是否与家庭作业有关。这关系到提问者在请求帮助之前是否自己对任务进行了合理的尝试,而不是仅仅张贴作业问题并要求回答。从这个问题来看,似乎OP确实试图亲自做这件事,只是征求意见,而不是免费劳动。谢谢@JamieCorkhill和其他人!是的,这是我的家庭作业之一,我有问题。我使用了杰米建议的几乎相同的方法,但我几乎没有错误。最后我得了满分。我必须使用return语句才能使它正常工作。我对发布这个问题犹豫不决,因为这是我的“家庭作业”,但我真的很想让这个函数发挥作用。