当前位置: 首页 > 知识库问答 >
问题:

在数组的每个索引中,对“,”前面的字符进行计数,并返回最高的

索嘉石
2023-03-14

我需要从这个数组中获取最长的姓氏并返回它。

String[] names = {"Turner, Brendan", "Savage, Fred", "Zidy, Boop",
                 "Zobie, Brendan", "Flurb, Fred", "Mopeeeeeyyy, Boopertinson"};

到目前为止我有这个;

public static void getLongestSurname(String[] name){
         int i = 0;
         int x = 0;
         int currentLength = 0; 
         int lastLength = 0; 
         String longestName = null;
    for(int j = 0; j < (name.length); j++){
      
          while (name[j].charAt(i) != ',') {
          i++;
          currentLength++;
          }
      System.out.println(i);
      System.out.println("current is"+currentLength);
      i = 0;
      currentLength = 0;
        if ( currentLength > lastLength ){
           longestName = name[i]; 
          }
    }
    
     System.out.println("longest surname should be; "+ longestName);
  }

但它给出的输出是“Longly surname should be;Turner,Brendan”,这不是列表中最长的名字。

共有1个答案

诸葛柏
2023-03-14

在迭代所有名称时,您需要跟踪LongestName,将当前名称的长度与当前LongestString的长度进行比较,而不是与lastLength进行比较

如果currentName的长度大于longestNumber的长度,将更新longestName

解决方案

public static void getLongestSurname(String[] name){
        
        int currentLength = 0; 
        int lastLength = 0; 
        String longestName = null;
        for(int j = 0; j < (name.length); j++){

           // split string by "," to get surname
            String[] strAr = name[j].split(",");
            // length of current surname 
            currentLength = strAr[0].length();
           // compare length of current surname with longest surName                
            if ( currentLength > lastLength ){
                longestName = name[j]; 
                lastLength = strAr[0].length();
            }
        }

        System.out.println("longest surname should be; "+ longestName);
    }

 类似资料:
  • 问题内容: 从如下所示的数组中,如何获取数组中最大值的索引。对于下面的数组,期望的结果将为‘11’。 问题答案: 我的解决方案是: 注意: 这样,您可以检索与给定 最大值 相关的 每个键 。 __ 如果您只对 其中一个键 感兴趣,只需使用 $ maxs [0]

  • 我正在进行一项编码挑战,获取一个由子数组组成的给定数组,在每个子数组中搜索最大的数字,最后返回一个只包含最大数字的新数组。我的思路是从每个子数组中创建变量,编写一个for循环来比较数组中的每个值,然后将最大值推送到一个新数组中。在编写了我的第一个for循环之后,我测试了我的代码,发现我得到了一个意想不到的结果,整个第一个子数组被压入了我的新数组。在我写下三个循环之前,我在寻找错误。谢谢你。编辑:这

  • 问题内容: 我想找出某个特定分区连续出现某个特定值的次数,然后显示该分区的较高计数。 例如,如果下表是: 我想知道每个设备连续出现相同速度的最高次数。 因此,如果我按设备ID对它们进行分区,我将获得belo表 所以我需要的输出是 请注意,由于没有连续重复的值,因此未显示07777778128 实现这一目标的可能方法是什么。我能够获得每个设备的所有连续值的计数,但是然后它没有给出最高的计数,而是给出

  • 问题内容: 在hive中,我希望对从最大到最小的数组进行排序,并获得索引数组。 例如,该表是这样的: 我要得到这个: 结果中的arries是初始元素的索引。我怎样才能做到这一点? 问题答案: 使用posexplode爆炸数组以获取索引和值,按值排序,收集索引数组: 经过测试,结果:

  • 我想用Javascript实现合并排序作为一种学习经验。我有mergeSort(unsortedArray)函数,它接受一个未经排序的数组,并使用合并排序策略对其进行排序。mergeSort()调用merge(leftArray,rightArray),后者将两个数组合并在一起,得到一个数组。 我认为问题出在merge()函数上。在数组[8,8,7,5,4,6,3,2,1,5,9,8,7,6,5,

  • 这里的问题是什么?。我正在尝试实现图数据结构,使用邻接列表,通过使用来自util包的集合。这里 包含一些整数的LinkedList数组。LinkedList的每个元素都包含另一个类型为:node的LinkedList。 但在编译过程中,它表示不兼容类型。如何解决这个问题?