Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串修改帮助_Java_String - Fatal编程技术网

Java 字符串修改帮助

Java 字符串修改帮助,java,string,Java,String,我花了一天的时间在这两门课上。我走得比我预期的更远,但不用说我遇到了问题 基本上,我必须获取一个输入的字符串,只返回大写字母、第二个字母、整个字符串,但所有元音都用下划线交换,字符串中元音的数量,最后返回字符串中所有元音的位置 我特别设计了我的tester类,我相信这是正确的,它有一个菜单来分别尝试每个命令,所以我能够测试每个命令 这是tester类 //****************************************** // LetterTest.java // Writt

我花了一天的时间在这两门课上。我走得比我预期的更远,但不用说我遇到了问题

基本上,我必须获取一个输入的字符串,只返回大写字母、第二个字母、整个字符串,但所有元音都用下划线交换,字符串中元音的数量,最后返回字符串中所有元音的位置

我特别设计了我的tester类,我相信这是正确的,它有一个菜单来分别尝试每个命令,所以我能够测试每个命令

这是tester类

//******************************************
// LetterTest.java 
// Written by Sanchez
// 2013
//*******************************************

//===========================================
// This program tests the CharAPI class.
//===========================================

import java.util.Scanner;

public class LetterTest {

public static void main(String[] args){
    //create Scanner for user input
    Scanner in = new Scanner(System.in);

    //get user input
        System.out.println("Please enter a string of letters");
        String input = in.nextLine();
    System.out.println("\nChoose an option: "
        +"\n1 - Uppercase, "
        +"\n2 - Every Second Letter, "
        +"\n3 - Replace vowels "
        +"\n4 - Number of vowels "
        +"\n5 - Positions of vowels");
    int choice = in.nextInt();

    //Call the method based on user choice

if (choice == 1)  {
        //each method returns a String
    System.out.println(LetterAPI.bigLetters(input) );
}
else if (choice ==2)  {
    System.out.println(LetterAPI.secondLetter(input) );
}
else if (choice ==3)  { 
    System.out.println(LetterAPI.vowelsGone(input) );
}
else if (choice ==4)  { 
    System.out.println(LetterAPI.vowelNumber(input) );
}
else {
    System.out.println(LetterAPI.vowelPositions(input) );
}
}
}
这似乎很有效,我对此很满意

我遇到的问题是,在我的类中,执行操作的对象 我已经在一些事情上使用了//以便能够编译它。第一、第二和第四,直接向上不要返回任何内容。第三个只把最后一个字母换成下划线,即使它不是元音,第五个也很好用,只是我想把所有数字加上1,结果从1开始,而不是0。我知道这里发生了很多事情,但我已经花了一天的时间在这上面,最后我表示我非常需要帮助

这是对象的代码

//******************************************
// LetterAPI.java 
// Written by Sanchez
// 2013
//*******************************************

//===========================================
// Objects of this class manipulate an inputted string.
//===========================================

import java.util.Scanner;

//contains a set of methods for maniuplaing the string
public class LetterAPI {

//print only uppercase letters
public static String bigLetters(String input) {
    String result = "";
    for (int i = 0; i <input.length(); i++) {
    char currentLetter=input.charAt(i);
    if (Character.isUpperCase(currentLetter))
    result = result;
    }
    return result;


}
//print every second letter
public static String secondLetter(String input) {
    String result = "";
    for (int i = 0; i <input.length(); i++) {
    //result = input.charAt(input);
    }
    return result;


}
//all vowels replaced by underscores
public static String vowelsGone(String input) {
    String result ="aeiouAEIOU";
    for (int i = 0; i<result.length();i++) {
    result=input.replace(result.charAt(i), '_');
    }
    return result;


}
//the numbers of vowels
public static String vowelNumber(String input) {
    String result = "";
    for (int i = 0; i <input.length(); i++) {

        if (Character.toLowerCase(input.charAt(i)) == 'a' || Character.toLowerCase(input.charAt(i)) == 'e' || Character.toLowerCase(input.charAt(i)) == 'i' || Character.toLowerCase(input.charAt(i)) == 'o' || Character.toLowerCase(input.charAt(i)) == 'u') {
            i++;
        }

    }
    return result;

}
//the positions of all vowels
public static String vowelPositions(String input) {
    String result = "";
    for (int i = 0; i <input.length(); i++) {

        if (Character.toLowerCase(input.charAt(i)) == 'a' || Character.toLowerCase(input.charAt(i)) == 'e' || Character.toLowerCase(input.charAt(i)) == 'i' || Character.toLowerCase(input.charAt(i)) == 'o' || Character.toLowerCase(input.charAt(i)) == 'u') {
            result = result + i + " ";
        }
    }
    return result;

}
}
//******************************************
//LetterAPI.java
//桑切斯著
// 2013
//*******************************************
//===========================================
//此类的对象操作输入的字符串。
//===========================================
导入java.util.Scanner;
//包含一组用于管理字符串的方法
公共类信纸{
//只打印大写字母
公共静态字符串bigLetters(字符串输入){
字符串结果=”;
对于(int i=0;i提示:

  • 在第1部分中,您可以这样做:
    result=result;
    这是毫无意义的。它什么也不做

  • 在第2部分中,编译错误是因为您试图将
    字符
    分配给
    字符串
    。这是不合法的。但这也不是您应该尝试做的。(考虑“附加”,而不是“分配”。)

  • 在第3部分中,第一个错误是:
    stringresult=“aeiouAEIOU”
    。实际上,它应该是
    stringresult=input;

  • 在第4部分中,您要计算所有元音,而不是每个不同的元音。您还需要将计数转换为
    字符串
    (结果中)

  • 关于第五部分,你会说:“除了我想在所有数字上加1外,效果很好。”所以就这样做吧


  • bigLetters
    :你认为
    result=result
    将要做什么?你想做什么呢?
    secondLetter
    :在
    for
    中的第三个表达式是程序每次通过循环都要做的事情。通常,它类似于
    i++
    ,意思是“将1添加到
    i
    ”。但不必如此。你能考虑使用
    i++
    之外的东西来做你需要的事情吗?
    元音消失了
    :你将
    结果
    设置为一个元音字符串。第一次通过循环,你使用
    结果
    来获取元音,然后你将
    结果
    更改为其他内容。第二次是
    result
    仍将是一个元音字符串?如果不是,您将如何获得所需的元音?
    vouelnumber
    :您需要一个贯穿字符串的整数
    i
    ,并且您需要一个不同的整数来保持计数。您不能同时对这两个元音使用
    i
    。此外,我建议更改
    vowelNumber
    ,这样它会返回一个
    int
    元音位置
    :在添加到字符串之前,您说要在答案中添加1。好的,就这样做。请注意
    结果=结果+i+1+“”
    不起作用,因为它首先将
    i
    作为字符串附加到
    result
    上,然后将
    1
    作为字符串附加到
    result
    上。括号会有帮助。谢谢。我不确定如何更新我的问题,所以我编辑了它。我取得了很大的进步,现在正在编译,但没有得到正确的结果。有什么问题吗ideas?result=result+(i+1)+“”。由于i+1在括号中,它们都是数字,因此+将被视为数字的加法,而不是字符串附加。然后加法的结果将转换为字符串。“任何想法”-坦率地说,您已经得到了足够多的提示。
    //******************************************
    // LetterAPI.java 
    // Written by Sanchez
    // 2013
    //*******************************************
    
    //===========================================
    // Objects of this class manipulate an inputted string.
    //===========================================
    
    import java.util.Scanner;
    
    //contains a set of methods for maniuplaing the string
    public class LetterAPI {
    
    //print only uppercase letters
    public static String bigLetters(String input) {
        String result = "";
        char cl;
        for (int i = 0; i <input.length(); i++) {
        cl=input.charAt(i);
        if (Character.isUpperCase(cl))
        input = input + cl;
        }
        return input;
    
    
    }
    //print every second letter
    public static String secondLetter(String input) {
        String result = "";
        for (int i=0; i<input.length(); i+=2) {
        input = input + input.charAt(i) + " ";
        }
        return input;
    
    
    }
     //all vowels replaced by underscores
    public static String vowelsGone(String input) {
        String vowels ="aeiouAEIOU";
        for (int i = 0; i<vowels.length();i++) {
        input=input.replace(vowels.charAt(i), '_');
        }
        return input;
    
    
    }
    //the numbers of vowels
    public static String vowelNumber(String input) {
        String result = "";
        int count = 0;
        for (int i = 0; i <input.length(); i++) {
    
            if (Character.toLowerCase(input.charAt(i)) == 'a' || Character.toLowerCase(input.charAt(i)) == 'e' || Character.toLowerCase(    input.charAt(i)) == 'i' || Character.toLowerCase(input.charAt(i)) == 'o' || Character.toLowerCase(input.charAt(i)) == 'u') {
                count++;
                result = count + " ";
            }
    
        }
        return result;
    
    }
    //the positions of all vowels
    public static String vowelPositions(String input) {
        String result = "";
        for (int i = 0; i <input.length(); i++) {
    
            if (Character.toLowerCase(input.charAt(i)) == 'a' || Character.toLowerCase(input.charAt(i)) == 'e' || Character.toLowerCase(input.charAt(i)) == 'i' || Character.toLowerCase(input.charAt(i)) == 'o' || Character.toLowerCase(input.charAt(i)) == 'u') {
                result = result + i + " ";
            }
        }
        return result;
    
    }
    }