找到二维数组中的最大单词

时间:2016-03-03 07:10:55

标签: java string multidimensional-array

package largestvalue;

import java.util.*;

public class LargestValue {

  public static void main(String[] args) {
    String array[][]={
      {"renas","Mahdy","Rezhwan"},
      {"HRashid","Barham","Harem"},
      {"zalamek","Mustafa","Sarbast"}
    };

    String Largest=array[0][0];

    for (int i = 0; i < array.length; i++){
      for (int j = 0; j < array[i].length; j++){
        if (Largest < array[i][j]) { //This is the error
          Largest = array[i][j] + "";
        }
      }
    }

    System.out.println("The Largest Number int the Array is :"+Largest);
  }
}

查看错误here的屏幕截图。

4 个答案:

答案 0 :(得分:2)

您无法将字符串与<运算符进行比较。

更改

if(Largest<array[i][j])

if(Largest.compareTo(array[i][j])<0)

请注意,根据词典(字母)顺序,这将为您提供“最大”String,这是Java中String的自然顺序。

另一方面,如果您想找到最长的String,那就是另一回事,这需要比较length() s的String

答案 1 :(得分:1)

尝试替换它:

 if(Largest<array[i][j])

使用如下所示的length()方法:

 if(Largest.length() < array[i][j].length())

答案 2 :(得分:0)

String s = "...";
int counter = 0;
for( int i=0; i<s.length(); i++ ) {
    if( s.charAt(i) == '$' ) {
        counter++;
    } 
}

你可以使用上面的代码,然后将计数器分配给为数组的每个值指定的变量,然后比较它们。但我认为这样做太长了。

答案 3 :(得分:0)

在Java 8中:

String largest = Arrays.stream(array)
        .flatMap(Arrays::stream)
        .sorted(Comparator.comparing(String::length).reversed())
        .findFirst()
        .orElse(null);