第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

排序列表的分配

排序列表的分配

胡說(shuō)叔叔 2023-10-12 17:04:45
我的第16章作業(yè)是這樣的。創(chuàng)建一個(gè)應(yīng)用程序接受用戶輸入的字符串或單詞按字母順序打印每個(gè)單詞打印輸入的元素總數(shù)到目前為止我有這個(gè)import java.util.Arrays;import java.util.Collection;import java.util.Collections;import java.util.List;import java.util.Scanner;public class Chapter16Assignment {        public static void main(String[] args){            Scanner input = new Scanner(System.in);            String userInput = "";            System.out.print(" Enter a line of words: ");            userInput = input.nextLine();            List<String> userString = Arrays.asList(userInput);            String[]userInput            //userString.add(userInput);            //.split            Collections.sort(userString);            System.out.println(userString);            //System.out.println("Frequency of words: " + Collection.frequency(userString));            }    }我需要使用 split 或其他東西。我想我可以在第 3 部分中使用排序方法和頻率。我希望輸出輸入一行單詞,然后按字母順序打印這些單詞,然后打印單詞數(shù)量。目前它還沒(méi)有做任何事情。但它正在獲取用戶的輸入。
查看完整描述

1 回答

?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

這就是如何使用 split 方法將字符串轉(zhuǎn)換為字符串?dāng)?shù)組。我沒(méi)有使用列表,因?yàn)槲蚁胂蚰故疽环N稍微不同的方法來(lái)解決此問(wèn)題。


我正在刪除空格并將所有內(nèi)容轉(zhuǎn)換為小寫(xiě)。如果你想做的話,這取決于你。


Scanner input = new Scanner(System.in);

String userInput;

System.out.print("Enter a line of words: ");

userInput = input.nextLine().replace(" ", "").toLowerCase();

String[] userInputSplit = userInput.split(""); // Splits array

Arrays.sort(userInputSplit); // Sorts array

System.out.println(Arrays.toString(userInputSplit)); // Prints sorted array

// Checks for frequency of each letter using maps

Map<String, Integer> countMap = Arrays.stream(userInputSplit)

        .collect(Collectors.toMap(Function.identity(), v -> 1, Integer::sum));

// Prints map

System.out.println("Frequency of words: " + countMap.toString());

輸出:


Enter a line of words: The quick brown fox jumps over the lazy dog

[a, b, c, d, e, e, e, f, g, h, h, i, j, k, l, m, n, o, o, o, o, p, q, r, r, s, t, t, u, u, v, w, x, y, z]

Frequency of words: {a=1, b=1, c=1, d=1, e=3, f=1, g=1, h=2, i=1, j=1, k=1, l=1, m=1, n=1, o=4, p=1, q=1, r=2, s=1, t=2, u=2, v=1, w=1, x=1, y=1, z=1}

編輯:


就像@AndyTurner建議的那樣,您也可以使用Collectors.counting()這使得語(yǔ)法更容易理解,但它將返回 Long 而不是 Integer


Map<String, Long> countMap = Arrays.stream(userInputSplit)

                .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

Collectors.counting本質(zhì)上是


Map<String, Integer> countMap = Arrays.stream(userInputSplit)

        .collect(Collectors.toMap(Function.identity(), v -> 1L, Long::sum));

使用 HashSet 和 Collections.Frequency:


HashSet<String> uniqueValues = new HashSet<String>(userInputList);

for (String value : uniqueValues) {

    System.out.println("Frequency of " + value + " is: " + Collections.frequency(userInputList, value));

}


查看完整回答
反對(duì) 回復(fù) 2023-10-12
  • 1 回答
  • 0 關(guān)注
  • 110 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)