gpt4 book ai didi

java - 使用以数字开头的字符串来显示那么多字符的子字符串

转载 作者:行者123 更新时间:2023-12-01 18:23:09 26 4
gpt4 key购买 nike

我正在努力解决这个问题,任何帮助将不胜感激。我试图让用户输入一个以单个数字 (1-9) 开头的字符串。输入字符串时,我需要打印一个子字符串,但最多只能打印输入的数字。例如,如果用户要输入“4 big house”,我的输出应该是“4 bi”。我让它正确显示,但是我的代码非常冗长,有很多 else if 语句。

减少代码行量的替代方法是什么?

此外,如果用户没有输入足够的字符,即如果字符串以 4 开头,但只包含 3 个字符,我会收到“字符串索引超出范围”异常...

         else if (text.substring(0,1).matches("[0-9]"))         
{

if (text.substring(0,1).matches("1"))
{

String text2 = text.substring(0, 1);
System.out.println("The decoded string is: " + text2 + ", and starts with a 1!");
}
else if (text.substring(0,1).matches("2"))
{
String text2 = text.substring(0, 2);
System.out.println("The decoded string is: " + text2 + ", and starts with a 2!");
}
else if (text.substring(0,1).matches("3"))
{
String text2 = text.substring(0, 3);
System.out.println("The decoded string is: " + text2 + ", and starts with a 3!");
}
else if (text.substring(0,1).matches("4"))
{
String text2 = text.substring(0, 4);
System.out.println("The decoded string is: " + text2 + ", and starts with a 4!");
}
else if (text.substring(0,1).matches("5"))
{
String text2 = text.substring(0, 5);
System.out.println("The decoded string is: " + text2 + ", and starts with a 5!");
}
else if (text.substring(0,1).matches("6"))
{
String text2 = text.substring(0, 6);
System.out.println("The decoded string is: " + text2 + ", and starts with a 6!");
}
else if (text.substring(0,1).matches("7"))
{
String text2 = text.substring(0, 7);
System.out.println("The decoded string is: " + text2 + ", and starts with a 7!");
}
else if (text.substring(0,1).matches("8"))
{
String text2 = text.substring(0, 8);
System.out.println("The decoded string is: " + text2 + ", and starts with a 8!");
}
else if (text.substring(0,1).matches("9"))
{
String text2 = text.substring(0, 9);
System.out.println("The decoded string is: " + text2 + ", and starts with a 9!");
}
}

最佳答案

您可以将字符串的第一个字符转换为 int,然后使用该 int 值将 1 - 9 的所有变体折叠为一个。要防止出现“字符串索引超出范围”消息,只需检查字符串是否足够长:

if (text.substring(0,1).matches("[0-9]")) {
int charCount = Integer.parseInt(text.substring(0, 1));
String text2 = text;
if (text.length() > charCount) {
text2 = text.substring(0, charCount);
}
System.out.println(text2);
}

关于java - 使用以数字开头的字符串来显示那么多字符的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083705/

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