猪拉丁语翻译。 C#家庭作业

时间:2017-02-09 04:56:53

标签: c# visual-studio

  

创建一个名为IGPAY的GUI应用程序,允许用户输入单词。然后,当用户单击按钮时,程序将生成并显示该单词的Pig Latin等效项。 (要做到这一点,你删除单词的第一个字母,然后将该字母添加到单词的末尾加上字母“ay”。例如,鱼将成为ishfay,而球将成为allbay。)确保GUI具有吸引力在外观上,所有标签,文本框,按钮和类似物都有清晰的标签。提示:将单词存储在字符串中并考虑使用Substring方法。还要记住字符串的Length属性会告诉你它的长度。有关示例,请参见本文第79-80页。

这是我提出的代码。我是这门语言的新手,对Python有一点了解,但我只是不明白为什么它会引发“超出范围异常”的错误。我试图让它成为代码接受任何单词并在猪拉丁文中显示它。

library.zip

2 个答案:

答案 0 :(得分:3)

不确定为什么你有一个downvote,好工作宣布这是家庭作业,至少提供一些你已经完成的工作。除此之外,这里的每个人都应该感谢你想要学习。

如果我是你,我会考虑一些事情。除了应该修复你的异常的Phylyp的答案之外,如果用户输入少于两个字符,你也应该处理,这也可能导致异常。

下面我展示一下你可以做的三件事的例子。不是说这是最好的方式,但它是一种选择。

  1. 检查输入的字符串以确保它至少是两个字符,如果没有,则提示用户。

  2. 使用一个string.Format调用减少字符串变量和声明行的数量。

    private void Button1_Click(object sender, EventArgs e)
    {
        const string suffix = "ay";
        string enteredString = textBox1.Text;
    
        //Check the length to make sure it is at least 2
        if(enteredString.Length < 2)
        {
            MessageBox.Show("Please enter at least 2 or more characters");
            return;
        }
    
        //We get here if 2 or more characters were entered.
        //Lets go ahead an process our string
        label2.Text = string.Format("{0}{1}{2}",
            enteredString.Substring(1),
            enteredString.Substring(0,1),
            suffix);
    }
    
  3. 编辑 - 我已经将上面的答案编辑到了你真正想要的东西,它只是1的第一个子字符串,它将在第一个字母后面给你字符串中的所有内容。基本上,你是说给我从第1位开始的字符串,或第二个字母。然后,第二个变量说给我从位置0开始的字符串,只有1个字符的长度。这基本上只给你第一个字母。所以,这会给你你想要的。结合检查以确保输入至少两个字符,并且您不应该有任何例外。

    希望这有帮助!

答案 1 :(得分:1)

first = word.Substring(0, 1);
rest = word.Substring(1, word.Length - 1);

由于Substring()方法从零开始,word.Length在字符串之外。将第二个参数更改为word.Length - 1可以避免错误。

此外,由于您只需要第一个字符,因此第一次调用Substring()时应将第二个参数设为1。

很好,你已经把它称为家庭作业并且已经提供了你尝试过的代码。

(编辑以结合Rob关于.Substring(1)的非常正确的评论)