我正在尝试编写一个使用char来表示每个case的switch语句.在我的教科书中,示例显示我可以使用char来执行此操作,但是当我编译程序时,我得到了这个:
StudentInvoiceListMenuApp.java:54: error: incompatible types
case 'R':
^
required: String
found: char
1 error
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
switch (inputCode) {
case 'R':
System.out.println("\nEnter file name:");
fileName = menuApp.nextLine();
if (inputCode.trim().length() == 0) {
break; // no file name entered
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
字符串索引超出范围:n
我正在编写一个程序来根据用户的输入(名字,中间名和姓氏)生成用户名。我应该从每个名称(名字,中间名和姓氏)中获取第一个字符,以及姓氏的最后一个字符,以便生成用户名。我已经成功编写了程序以生成每个名称的第一个字符,但是当我尝试让程序生成姓氏的最后一个字符时,会出现此错误:
线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:7
at java.lang.String.charAt(String.java:658)
at UsernameGenerator.main(UsernameGenerator.java:39)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import java.util.Scanner;
/**
UsernameGenerator.java
Generates a username based on the users inputs.
@author: Evan Fravert
*/
public class UsernameGenerator {
/**
* Generates a username based on the users inputs.
*@param args command line argument
*/
public static void main(String[] args)
{ // abcde
String first;
String middle;
String last;
String password1;
String password2;
int randomNum;
randomNum = (int) (Math.random() * 1000) + 100;
Scanner userInput = new Scanner(System.in);
System.out.println("Please enter …Run Code Online (Sandbox Code Playgroud)