试图在 java 中的数组中查找字符串索引
Trying to find index of string in array in java
我试图找到数组中最长字符串的 indexOf,它由字符串 longString 表示。我不断收到 "cannot find symbol" 错误并且不知道如何解决此问题
public class Final21 {
public static String getLongString(String[] array) {
int x=0;
int maxLength = 0;
String longString = null;
for (String s : array) {
if (s.length() > maxLength) {
maxLength = s.length();
longString = s;
}
}
return longString;
}
public static String getShortString(String[] array) {
int minLength = 0;
String shortString = null;
for (String t : array) {
if (t.length() > minLength) {
minLength = t.length();
shortString = t;
}
}
return shortString;
}
public static void main(String[] args) {
String[] names = {"bob", "maxwell", "charley", "tomtomjack"};
String longString = getLongString(names);
System.out.println("The Longest String is: " + longString + " With The Index Of" + names.indexOf(longString));
String shortString = getShortString(names);
System.out.println("The Longest String is: " + shortString + " With The Index Of" );
}
}
问题出在names.indexOf(longString)
。因为 names
是 String[]
类型,它是一个数组。此类型 String[]
没有 名为 indexOf
的方法定义。作为替代方案,您可以尝试 java.util.Arrays.asList(theArray).indexOf(o)
因此,要更正您的代码片段,您可以像这样重写它
System.out.println("The Longest String is: " + longString + " With The Index Of" + java.util.Arrays.asList(names).indexOf(longString));
阅读 Javajava.util.Arrays
的文档以温习如何使用 Java API 处理 java 中的数组的知识。
此外,您可以通过修改代码的语义来实现相同的目的。 by Elliott Frisch 已经为您做到了。也读一下..
数组中没有 indexOf
函数,而不是您当前的方法 - 我会 return 来自 getLongString
和 [=16= 的 index
] 方法;首先假设它是第一个元素。如果任何元素更长(或更短),请更新 return 值。喜欢,
public static int getLongString(String[] array) {
int max = 0;
for (int i = 1; i < array.length; i++) {
if (array[i].length() > array[max].length()) {
max = i;
}
}
return max;
}
public static int getShortString(String[] array) {
int min = 0;
for (int i = 1; i < array.length; i++) {
if (array[i].length() < array[min].length()) {
min = i;
}
}
return min;
}
那你可以这样称呼它
public static void main(String[] args) {
String[] names = { "bob", "maxwell", "charley", "tomtomjack" };
int longString = getLongString(names);
System.out.println("The Longest String is: " + names[longString] + " With The Index Of " + longString);
int shortString = getShortString(names);
System.out.println("The Longest String is: " + names[shortString] + " With The Index Of " + shortString);
}
输出
The Longest String is: tomtomjack With The Index Of 3
The Longest String is: bob With The Index Of 0
indexOf() 的语法是:
public int indexOf(char ch);
它 returns 指定字符在该字符串中第一次出现的索引,如果该字符未出现,则为 -1。
获得所需的输出。
您可以尝试使用以下方法更改您的代码;
public static String getLongString(String[] array) {
int x=0, maxLength = 0, index = 0;
String longString = null;
for (String s : array) {
if (s.length() > maxLength)
{
maxLength = s.length();
index++;
longString = s;
}
}
return "The Longest String is: "+ longString + " With The Index Of :" + index;
}
public static void main(String[] args) {
String[] names = {"bob", "maxwell", "charley", "tomtomjack"};
String longString = getLongString(names);
System.out.println(longString);
}
我试图找到数组中最长字符串的 indexOf,它由字符串 longString 表示。我不断收到 "cannot find symbol" 错误并且不知道如何解决此问题
public class Final21 {
public static String getLongString(String[] array) {
int x=0;
int maxLength = 0;
String longString = null;
for (String s : array) {
if (s.length() > maxLength) {
maxLength = s.length();
longString = s;
}
}
return longString;
}
public static String getShortString(String[] array) {
int minLength = 0;
String shortString = null;
for (String t : array) {
if (t.length() > minLength) {
minLength = t.length();
shortString = t;
}
}
return shortString;
}
public static void main(String[] args) {
String[] names = {"bob", "maxwell", "charley", "tomtomjack"};
String longString = getLongString(names);
System.out.println("The Longest String is: " + longString + " With The Index Of" + names.indexOf(longString));
String shortString = getShortString(names);
System.out.println("The Longest String is: " + shortString + " With The Index Of" );
}
}
问题出在names.indexOf(longString)
。因为 names
是 String[]
类型,它是一个数组。此类型 String[]
没有 名为 indexOf
的方法定义。作为替代方案,您可以尝试 java.util.Arrays.asList(theArray).indexOf(o)
因此,要更正您的代码片段,您可以像这样重写它
System.out.println("The Longest String is: " + longString + " With The Index Of" + java.util.Arrays.asList(names).indexOf(longString));
阅读 Javajava.util.Arrays
的文档以温习如何使用 Java API 处理 java 中的数组的知识。
此外,您可以通过修改代码的语义来实现相同的目的。
数组中没有 indexOf
函数,而不是您当前的方法 - 我会 return 来自 getLongString
和 [=16= 的 index
] 方法;首先假设它是第一个元素。如果任何元素更长(或更短),请更新 return 值。喜欢,
public static int getLongString(String[] array) {
int max = 0;
for (int i = 1; i < array.length; i++) {
if (array[i].length() > array[max].length()) {
max = i;
}
}
return max;
}
public static int getShortString(String[] array) {
int min = 0;
for (int i = 1; i < array.length; i++) {
if (array[i].length() < array[min].length()) {
min = i;
}
}
return min;
}
那你可以这样称呼它
public static void main(String[] args) {
String[] names = { "bob", "maxwell", "charley", "tomtomjack" };
int longString = getLongString(names);
System.out.println("The Longest String is: " + names[longString] + " With The Index Of " + longString);
int shortString = getShortString(names);
System.out.println("The Longest String is: " + names[shortString] + " With The Index Of " + shortString);
}
输出
The Longest String is: tomtomjack With The Index Of 3
The Longest String is: bob With The Index Of 0
indexOf() 的语法是:
public int indexOf(char ch);
它 returns 指定字符在该字符串中第一次出现的索引,如果该字符未出现,则为 -1。
获得所需的输出。
您可以尝试使用以下方法更改您的代码;
public static String getLongString(String[] array) {
int x=0, maxLength = 0, index = 0;
String longString = null;
for (String s : array) {
if (s.length() > maxLength)
{
maxLength = s.length();
index++;
longString = s;
}
}
return "The Longest String is: "+ longString + " With The Index Of :" + index;
}
public static void main(String[] args) {
String[] names = {"bob", "maxwell", "charley", "tomtomjack"};
String longString = getLongString(names);
System.out.println(longString);
}