[英]Java Error; array required, but java.lang.String found
我目前正在尝试完成该程序,但遇到此错误。 我已经做了很多事情试图对其进行修复,以便可以对其进行编译,但无法正常工作。 似乎“字符串字母”出现错误。 有人可以帮我解决这个问题吗?
import java.util.Scanner;
public class Period
{
private static String phrase;
private static String alphabet;
public static void main(String [] args)
{
Scanner keyboard = new Scanner(System.in);
String userInput;
int[] letter = new int [27];
int number = keyboard.nextInt();
System.out.println("Enter a sentence with a period at the end.");
userInput = keyboard.nextLine();
userInput.toLowerCase();
}
public void Sorter(String newPhrase)
{
phrase=newPhrase.substring(0,newPhrase.indexOf("."));
}
private int charToInt(char currentLetter)
{
int converted=(int)currentLetter-(int)'a';
return converted;
}
private void writeToArray()
{
char next;
for (int i=0;i<phrase.length();i++)
{
next=(char)phrase.charAt(i);
sort(next);
}
}
private String cutPhrase()
{
phrase=phrase.substring(0,phrase.indexOf("."));
return phrase;
}
private void sort(char toArray)
{
int placement=charToInt(toArray);
if (placement<0)
{
alphabet[26]=1;
}
else
{
// here is one spot that mainly the error pops up?
alphabet[placement]=alphabet[placement]+1;
}
}
public void entryPoint()
{
writeToArray();
displaySorted();
}
private void displaySorted()
{
for (int q=0; q<26;q++)
{
System.out.println("Number of " + (char)('a'+q) +"'s: "+alphabet[q]);
}
}
}
您的sort
方法将alphabet
( String
)视为数组。 String
不是char[]
但是您可以像这样调用String.toCharArray()
private void sort(char toArray)
{
char[] alpha = alphabet.toLowerCase().toCharArray();
int placement=charToInt(toArray);
if (placement<0)
{
alpha[26]=1;
}
else
{
alpha[placement]=alpha[placement]+1;
}
alphabet = new String(alpha, "UTF-8");
}
但是修改String
是不可能的,因为它们是不可变的。 出于同样的原因,您的原始调用alphabet.toLowerCase()
不会在您的其他方法中修改alphabet
。
变量alphabet
定义为String
数据类型,但是如果要使用代码中的括号[]
引用它,则需要将其定义为数组。 在这种情况下,错误消息非常清楚。
String[] example = new String[3];
example[0] = "Hello";
example[1] = "ETC...";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.