我已经浏览了类似于我已经在这里的问题,但是没有发现任何对我有用的东西。
基本上我要做的就是逐行读取一个完整的字符串文件,逐行打印,然后逐字逐句打印。我想用.split来创建每个单独字符串的数组。
例如,我的文件是:
胖猫是黑色的
母牛跳过月亮
我来打招呼世界
等
我已经弄清楚如何读取文件并逐行打印文件,但我无法弄清楚如何逐字打印。这3个中的每一个都有自己的功能,所以我不确定它是否在放置物品的位置起任何作用。
到目前为止,这是我的方法:
static public void printWords( String [ ] arr, int count )
{
String [] s2 = arr[0].split( " " );
for( int i = 0; i < count; i++)
{
System.out.println( s2 [i] );
}
System.out.println();
}
然而,这给了我一个错误。我换了几件东西,但每次只打印线或停在某一点。我唯一的主要是我的方法调用,这不是问题。如果有人有任何见解,将不胜感激。谢谢!
编辑:
&#34;计数&#34;在我的代码中是我正在阅读的文件中的行数。所以为此,它是3.
我已经调整了代码以获得我需要的东西,但它只打印第一句话。
String [] s2 = arr[0].split( " " );
for (int j = 0 ; j < count ; j++)
{
for( int i = 3; i < s2.length; i++)
{
System.out.print( s2 [i] + " " );
}
System.out.println();
}
}
例如,这仅打印
胖猫是黑色的
然后结束。我正在尝试围绕它构建另一个循环(正如我的代码所示)但它最终只是打印&#34;肥猫是黑色的&#34; 3次而不是移动到文件的下一行。
答案 0 :(得分:3)
尝试这样的事情:
static public void printWords(String [ ] arr)
{
for(String s : arr) {
String[] s2 = s.split(" ");
for(String results : s2) {
System.out.println(results);
}
}
}
这样你就不需要计数变量了。
答案 1 :(得分:0)
你的for循环停止在count而不是(array.length || count)
可能是一个错误答案 2 :(得分:0)
如果这是一个家庭作业问题,计数只能用于有意义的行数。您接近解决方案但是您的split语句位于错误的位置。
String数组arr包含文件中的字符串,count是从文件中获取的行数,因此它是通过arr数组的迭代器的限制。你有一个正确的想法,通过使用一个单独的迭代器来遍历s2数组,因为它只包含来自arr的一行中的单词。
试试这个:
static public void printWords( String [ ] arr, int count )
{
for (int j = 0 ; j < count ; j++)
{
String [] s2 = arr[j].split( " " );
for( int i = 0; i < s2.length; i++)
{
System.out.print( s2 [i] + " " );
}
System.out.println();
}
}
答案 3 :(得分:0)
专门用空格分割。
public void split() {
ArrayList<String> myArray=new ArrayList<>();
myArray.add("The fat cat was black");
myArray.add("The cow jumped over the moon");
for (String strLine : myArray) {
String[] strWord = strLine.split("[\\s']");
for (String s : strWord) {
System.out.println(s);
}
}
}
此处[\\s']
表示空格,制表符,换行符。