gpt4 book ai didi

Java - 读取一个数组列表中的值字符并将其转换为另一个数组列表中的字符串

转载 作者:行者123 更新时间:2023-12-01 10:30:48 26 4
gpt4 key购买 nike

我正在开发一个将用户输入转换为摩尔斯电码的程序。为此,我有两个文本文件,一个存储莫尔斯字母,另一个存储英语字母。

我正在尝试一一读取用户输入中的字符,并将它们与字符数组列表中的字符进行比较,以找到适当的索引。然后,我只需将翻译变量附加到莫尔斯数组列表中该索引处的值即可。 (他们的组织方式是为了让这项工作有效)。

但由于某种原因,当它将 char 与法线数组列表进行比较时,我收到了 IndexOutOfBoundsException。

这是我的代码:

import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class MorseCode
{
public static String translate(String input) throws IOException
{
//Convert input to lowercase
input.toLowerCase();
//Create final statement
String translation = "";

//Store values
ArrayList<String> morse = new ArrayList<String>();
ArrayList<Character> normals = new ArrayList<Character>();

//Scan and read file
Scanner morseFile = new Scanner(new File("morsecode.txt"));
Scanner normalsFile = new Scanner(new File("normals.txt"));
while (morseFile.hasNext())
{
morse.add(morseFile.next());
}
while (normalsFile.hasNext())
{
normals.add(normalsFile.next().charAt(0));
}

//Begin checking for chars and converting
for (int i = 0; i < input.length() + 1; i++)
{
//Set current char
char currentChar = input.charAt(i);

//Begin comparing chars
for (int b = 0; b <= normals.size() + 1; b++)
{
//If char equals x
if (currentChar == normals.get(b))
{
//Append translation
translation += morse.get(b);
}
else
{
//Nothing
}
}
}
return translation;
}
}

最佳答案

删除条件中的+1,b <= normals.size() + 1 ,内部 for 循环。 b <= normals.size()就够了

关于Java - 读取一个数组列表中的值字符并将其转换为另一个数组列表中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35109322/

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