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

扫描并放入阵列

胡元忠
2023-03-14

我想扫描句子并计算有多少单词。然后将句子放入数组。并打印它。

它一直工作到 System.out.println(“단어개수 : ” count);但在那之后它不起作用。

导入java.util.扫描仪;公共类Midterm_HW00{

public static void main(String[] args) {
    
    System.out.println("Insert sentence: ");
    
    
    Scanner scanner = new Scanner(System.in);
    int count =1;
    
    String sentence = scanner.nextLine();   //문자열 읽기    
            
    for(int i = 0; i < sentence.length(); i++) {   
        if(sentence.charAt(i)==' ') {   //단어 개수를 띄어쓰기 개수로 계산
            count++;
            
        }
    }
    System.out.println("단어 개수: " + count);

    String[] wordArray = new String[30];   //배열 선언
    int word = wordArray.length;
    
    for(int j=0; j<word; j++){
        wordArray[j] = scanner.next();            

       System.out.println("" + wordArray[j]);

    
    
    scanner.close();
   }
}

}

共有3个答案

邹高峻
2023-03-14

您可以使用按空格分割的字符串来生成这样的数组string[]wordArray=sentence.split(“\\s”)

代码:

public static void main(String[] args) {
    // TODO Auto-generated method stub

    System.out.println("Insert sentence: ");
    
    
    Scanner scanner = new Scanner(System.in);
    int count =1;
    
    String sentence = scanner.nextLine();   //문자열 읽기    
            
    for(int i = 0; i < sentence.length(); i++) {   
        if(sentence.charAt(i)==' ') {   //단어 개수를 띄어쓰기 개수로 계산
            count++;
            
        }
    }
    System.out.println("단어 개수: " + count);

    String[] wordArray = sentence.split("\\s+");   //배열 선언
    
    
    for(int j=0; j<wordArray.length; j++){       

       System.out.println("" + wordArray[j]);

   }
}

郭志
2023-03-14
Scanner scanner = new Scanner(System.in);
String sentence = scanner.nextLine();

String[] words = sentence.split("[ ]+");
System.out.println("단어 개수: " + words.length);

for(String word : words){
    System.out.println(word);
}
秦禄
2023-03-14

你可以通过使用简单的方法得到所有这些:

String[] array = yourString.split(" ");
int amountOfWords = array.length;
 类似资料:
  • 问题内容: 我知道如何获取Android Wifi扫描,但我不知道从中制作列表适配器的最佳方法。我只想将SSID和BSSID从扫描的绑定到text1和text2。 我一直在做的样本 和: 问题答案: 试试这个代码 对于 在中添加这些权限

  • 我正在尝试将文件的内容放入数组中。文件内容是正整数和负整数。 这就是我所做的,以确定我应该使数组多大。inFile是我的扫描仪。我能够打印inFile的内容,但它们不会进入数组。我只得到空值。 这就是我试图将文件内容放入数组所做的。 谢谢你的帮助。

  • 问题内容: 我正在尝试解决可以在这里找到的SPOJ问题 以下是我的解决方案: 该代码工作正常。这里的问题是在SPOJ中执行超时时会超时。 我最初只是使用,但是随后遇到了这个线程,建议我改用它来进行更快的输入扫描。 但是我仍然遇到超时问题。我只是循环获取所有输入,并且在此循环本身中,我确定输入是否可分割。因此,我认为这不是循环而是输入扫描需要时间。如何改善此功能以更快地读取输入?还是这个问题在其他地

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?

  • 我正在尝试使用DynamoDB并行扫描示例: <代码>http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LowLevelJavaScanning.html 我有200,000个项目,我已经进行了顺序代码扫描,并根据我的使用对其进行了稍微修改: 当这个代码完成时,计数器给出的正好是200000,然而,我还想尝试并行扫描。

  • 我用java编写了一个带条件的switch case语句。如果一个人在2到12个月的时间内将一个项目添加到系统中,它将被添加到一个数组中。如果项目持续时间小于2或大于12,系统应要求他们重新输入有效数字。出于某种原因,我的系统会提示他们输入两次数字,并且只存储数组中的第二个条目:终端提示两次的图像 我在想这是因为我有“myMonths[index]=sc.nextInt();”声明了两次,但是我不

  • 背景:我对编码非常陌生。我正在写一个基于文本的单人RPG作为学习方法。 所以,我有一个ArrayList,我用它来存储项目类的对象。我想根据扫描仪的用户输入检查ArrayList是否存在项目(项目类中的对象)。 如果可能的话,我认为如果我将一个项目传递给开关(基于用户输入),而不是一个字符串,而我后来必须“翻译”ArrayList才能使用它,那会更干净。 可能吗?或者我必须按照我在下面代码中写出来