我刚开始使用方法。这是一个模板,我对如何执行这些方法感到困惑。有人可以告诉我如何做被问到的事情吗?

Posted

技术标签:

【中文标题】我刚开始使用方法。这是一个模板,我对如何执行这些方法感到困惑。有人可以告诉我如何做被问到的事情吗?【英文标题】:I just started using methods. This is a template and I'm confused on how to do the methods. Can someone show me how to do what is being asked? 【发布时间】:2017-08-23 23:56:39 【问题描述】:

我不确定如何添加所需的方法,因为这是我的第一个程序,没有在主程序中执行所有操作。这让我非常困惑。我不知道如何制作一个方法,只是模糊地知道它需要什么或如何返回。谁能帮我解决这个代码?

编辑:: 由于提供的提示,我完成了代码。但是,我似乎无法使最后两种方法起作用。我觉得 shift char 好像要与 String shift 一起使用,但我不知道如何。我在这里编译并运行,但是当我输入 My Shy Gypsy 时,最后一个输出是“String shift by a letter is 'Nztizhzqtz'”,它正确地将字母表中的每个字母向前移动 1 个字母,但去掉了空格,为什么?

import java.util.Scanner;

public class StringMethods 
    public static void main(String[] args) 

        Scanner input = new Scanner(System.in);
        System.out.println("Enter a sentence");
        String s = input.nextLine();

        System.out.println("\nNumber of Spaces in the string = " + countSpaces(s) + "\n");
        System.out.println("Number of E's in the string = " + countChar(s, "E") + "\n");
        System.out.println("Number of Stars in the string = " + countChar(s, "*") + "\n");
        System.out.println("Does string contain vowels? " + anyVowels(s) + "\n");
        System.out.println("String reversed = " + reverse(s) + "\n");
        System.out.println("String shifted by one letter is " + shift(s)  + "\n");
    

    // method to return the number of spaces in a String
    public static int countSpaces(String input) 
        int spaces = 0;
        int i;
        for (i = 0;i<input.length();i++)
            if(input.charAt(i) == ' ')
                spaces++;
            
        
         return spaces;
    

    // method to count the number of instances of
    // a particular character in a String
    // the method will return the total of upper and lower
    // case instances if it is a letter
    public static int countChar(String input,String findStr) 
        input = input.toLowerCase();
        findStr = findStr.toLowerCase();
        int num = 0;
        int i;
        for (i = 0;i<input.length();i++)
            if(input.charAt(i) == findStr.charAt(0))
                num++;
            
        
        return num;

    

    // method to detect whether a String contains a vowel or not
    // must include call(s) to countChar
    // returns true or false
    public static boolean anyVowels(String input) 
        int num = 0;
        num = countChar(input, "a")+countChar(input, "e")+countChar(input, "i")+countChar(input, "o")+countChar(input, "u");
        if(num >  0) 
            return true;
        
        return false;
    


    // method to return the reverse of a String
    public static String reverse(String input) 
        String reverse = "";
        for (int i = 0;i<input.length();i++) 
            reverse = input.charAt(i) + reverse;
        
        return reverse;    
    

    // method to return a character shifted one place in the alphaber
    // a becomes b, b become c etc. z becomes a
    // A becomes B, B becomes C etc. Z becomes A
    // all other characters are left unchanged
    public static char shift(char input) 

        char shiftedChar = 'a';
        shiftedChar++;
        //for (int i = 0; i < input.length();i++) 
        //    shiftedChar = input.charAt(i);
        //  
        //



        return shiftedChar;
    

    // method to return a String with each letter shifted one place in the alphabet
    // method must include call(s) to previous method
    public static String shift(String input) 

        String shiftedString = "";
        for (int i = 0; i < input.length();i++) 
            char a = input.charAt(i);
            if (a != ' ') 
            a++;
            shiftedString = shiftedString + a;
            
        







        return shiftedString;
    


【问题讨论】:

在提出关于 SO 的问题之前,您需要付出一些努力。只是把你的家庭作业丢在这里会导致投票失败和一个封闭的问题。由于我们在这里讨论的是绝对基础知识,因此您应该寻找基本教程(我推荐Oracle Java Tutorials)。 我理解你的意思,我并不是要找人做我的功课。我只需要一个例子来帮助我。抱歉,不想粗鲁。 @ChristopherWhitt 我在下面给了你一些建议。 我不认为你的问题很粗鲁。示例的问题在于它们通常不会像阅读适当的教程那样为您提供尽可能多的信息。你可能会盲目地复制代码,当有些东西有点不同时,它就不再起作用了。这就像试图建造一所房子,而您的选择是“成为一名工程师”或“看看邻居的房子并尝试获得相同的最终结果”。此外,在阅读完教程后,您无需再回来为您的下一个作业提出另一个问题(或者至少它不会像这个一样广泛)。 你说得对。我什至通读了关于方法的书,但我很难以这种方式学习它。不过,我一定会查看教程。 【参考方案1】:

我看到老师给你留下了方法的骨架,所以我会帮助你完成第一个。

public static ________ countSpaces(________) 


    

这里第一个下划线部分是您希望方法返回的内容(即您希望它返回文本(String)还是整数(int))。查找 Java 的数据类型。提示:它应该返回的内容在方法上方的 cmets 中。

第二个带下划线的部分(括号中)是您希望在使用时传递给该方法的内容。因此,如果该方法需要其中的数字 10 进行某种计算,并返回某种文本,一个示例是:

public static String countSpaces(int 10) 
       //do whatever necessary here

    

希望这会有所帮助。

【讨论】:

这很有帮助,所以数据类型在后面,明白了。非常感谢! 没问题 - 如果您对答案感到满意,请点赞/接受 - 谢谢。【参考方案2】:

让我们做第一个。

// method to return the number of spaces in a String
public static ________ countSpaces(________) 


需要补充的是这个

// method to return the number of spaces in a String
public static int countSpaces(String input) 
   int spaces = 0;
   // Do the magic counting here
   return spaces;

现在该方法接受一个字符串作为输入并返回一个整数作为输出。

【讨论】:

【参考方案3】:

我没有提供所有的方法实现。有些留给提问者实施。但是,以下是一些有用的提示 -

import java.util.Scanner;

public class StringMethods 
    public static void main(String[] args) 

        Scanner input = new Scanner(System.in);
        System.out.println("Enter a sentence");
        String s = input.nextLine();

        System.out.println("\nNumber of Spaces in the string = " + countSpaces(s) + "\n");
        System.out.println("Number of E's in the string = " + countChar(s, "E") + "\n");
        System.out.println("Number of Stars in the string = " + countChar(s, "*") + "\n");
        System.out.println("Does string contain vowels? " + anyVowels(s) + "\n");
        System.out.println("String reversed = " + reverse(s) + "\n");
        System.out.println("String shifted by one letter is " + shift(s)  + "\n");
    

    // method to return the number of spaces in a String
    public static int countSpaces(String input) 
         return input.split(" ",-1).length-1;
    

    // method to count the number of instances of
    // a particular character in a String
    // the method will return the total of upper and lower
    // case instances if it is a letter
    public static int countChar(String input, String findStr) 


    

    // method to detect whether a String contains a vowel or not
    // must include call(s) to countChar
    // returns true or false
    public static boolean anyVowels(String input) 

    


    // method to return the reverse of a String
    public static String reverse(String input) 
        StringBuffer sb = new StringBuffer(input);
        return sb.reverse().toString();
    

    // method to return a character shifted one place in the alphaber
    // a becomes b, b become c etc. z becomes a
    // A becomes B, B becomes C etc. Z becomes A
    // all other characters are left unchanged
    public static char shift(char input) 

        char shiftedChar = '';
        // TODO - code to shift the char

        return shiftedChar;
    

    // method to return a String with each letter shifted one place in the alphabet
    // method must include call(s) to previous method
    public static String shift(String input) 

        String shiftedString = null;

        //TODO shit the char for each char in a String

        return shiftedString;
    


【讨论】:

@Christopher Whitt - 看看这是否有帮助。 我认为其他答案已经证明了该怎么做。完成 90% 的作业不会帮助他学习。它只会告诉人们,当它被扔在这里时,总会有人会做大部分作业。 觉得你给的太多了。 删除了实现。

以上是关于我刚开始使用方法。这是一个模板,我对如何执行这些方法感到困惑。有人可以告诉我如何做被问到的事情吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jenkins 中使用不同的编译器标志多次执行一个构建?

我开始使用 tkinter

使用按下按钮和数组行的标识来执行 segue

事务如何在 nhibernate 中工作?

Django:避免在模板中呈现为变量

如何使用 vue.js 显示两个组件?