我正在创建一个程序,在该程序中,用户玩游戏时必须猜测数字是高还是低,然后根据答案的结果来打分他们将会输掉还是会赢。元素之一应该是一个简单的代码,用户可以输入自己的姓名(例如:“ John Smith”),然后使用该姓名,扫描空格,然后使用第一个姓氏的字母并将其与名字的首字母(smitJ)。但是,它没有按照我想要的方式工作。
我尝试使用indexOf空间,然后查看它是否与名称匹配,以及使用valueOf来查看它是否匹配。我还在弄弄子字符串号,所以那些可能会关闭。
public class HiLoSummativeUI extends javax.swing.JFrame {
String name;
public HiLoSummativeUI() {
initComponents();
}
String spaceIS;
private void nameButtonActionPerformed(java.awt.event.ActionEvent evt) {
name = nameInput.getText();
System.out.println(name);
spaceIS = " ";
System.out.println(spaceIS);
for (int i=0;i<name.length();i++){
String s = String.valueOf(" ");
if(s.equals(spaceIS)) {
String lastName = name.substring(i, i+3) + name.substring(0,1);
nameOutput.setText("Hello: " + lastName);
}
}
}
如果我要输入“ John Smith”,则UI应该返回“ smitJ”,但是,它返回类似“ ithJ”的错误代码:
线程“ AWT-EventQueue-0”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:11
答案 0 :(得分:0)
进行如下所示的更改:
for (int i=0;i<name.length();i++){
String s = String.valueOf(name.charAt(i));
if(s.equals(spaceIS)) {
String lastName = name.substring(i+1, i+5) + name.substring(0,1);
nameOutput.setText("Hello: " + lastName);
}
}
由于我们在第space
个索引处有一个i
,因此我们从i+1
索引(包括)开始到i+5
(不包括)。