gpt4 book ai didi

Java - 变量 "st"可能尚未初始化

转载 作者:行者123 更新时间:2023-12-01 22:42:14 25 4
gpt4 key购买 nike

当我尝试进行字符串计数时,在第 5 种情况下,我收到此错误“变量“st”可能尚未初始化”。我尝试在网上寻找解决方案,但找不到使用字符串标记器遇到相同问题的人。请有人告诉我为什么会发生这种情况?

/**
*To change this license header,choose License Headers in Project Properties.
*To change this template file,choose Tools|Templates
*and open the template in the editor.
*/

package labone;

import java.util.Scanner;
import java.util.StringTokenizer;

public class LabOne {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Scanner userInput = new Scanner(System.in);

System.out.println("Welcome To The String Editor!");
System.out.println("");
System.out.println("Please choose what you would like to do by choosing one of the options below:");
System.out.println("1. Input String");
System.out.println("2. Print Current String");
System.out.println("");
int userOption = 0;
String stringInput = new String();

while (userOption != 9) {
userOption = userInput.nextInt();
userInput.nextLine();


switch (userOption) {
case 1:
stringInput = userInput.nextLine();
System.out.println(stringInput);
break;

case 2:
System.out.println(stringInput);
break;

case 3:
stringInput = new StringBuilder(stringInput).reverse().toString();
System.out.println(stringInput);
break;

case 4:
StringTokenizer st = new StringTokenizer(stringInput);
System.out.println(stringInput);
break;

case 5:
System.out.println("Number of tokens:" + st.countTokens());
break;
default:
;
break;
}

}

// TODO code application logic here
}

}

最佳答案

Please could someone tell me why this is happening?

在情况 4 中,您在本地初始化 st。在情况 5 中,它不可见。

解决方案:在 switch block 之外对其进行初始化。

或者,如 spotted by Thilo ,您可以在情况 5 中初始化它,因为它似乎没有在其他任何地方使用。

    case 5: 
StringTokenizer st = new StringTokenizer(stringInput);
System.out.println("Number of tokens:" + st.countTokens());
break;

您应该小心,不要在本地初始化这么多变量,因为您可能会再次发生相同的问题。

关于Java - 变量 "st"可能尚未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25966564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com