【问题标题】:How do I split a string into an array如何将字符串拆分为数组
【发布时间】:2015-07-18 18:57:03
【问题描述】:

我正在尝试拆分我的FileReaderBufferedReader 读取的字符串的每一行。我在String [] x = Login.Split(""); 收到语法错误

我可以使用什么方法来拆分String?我将添加一个方法来查看字符串是否与另一个输入匹配,但现在我需要弄清楚如何拆分字符串并仍然将每一行分开。
(我正在尝试另一种方法来制作登录,因为我有 java 8 并且不能使用 sql 并且 ucanaccess 似乎也没有帮助)我也尝试使用分隔符,但找不到一个好的适用示例。

private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {      
    try {
        FileReader FR = new FileReader("Login.txt");
        BufferedReader Login = new BufferedReader(FR);
        StringBuilder sb= new StringBuilder();

        String str;
        String [] x = Login.Split("");
        while ((str = Login.readLine()) !=null ) { 
            sb.append(str);
            sb.append("\n");
        }
        Login.close();
        FR.close();

        System.out.println(sb.toString());
        Scanner read = new Scanner(Login);

        } catch (Exception ex) {
            System.out.println("exception 2, " );
            ex.printStackTrace();
        }
    }  

【问题讨论】:

  • 你想分割什么? Login.readLine 将从您的输入中读取单行。这些单行分配给str。还要拆分str吗?
  • 啊,是的,我认为您为我指明了正确的方向。我需要拆分每一行,然后从每一行扫描数组,看它是否与用户名和密码匹配。
  • 您在缓冲阅读器上调用SplitSplitString 的方法,而不是 BufferedReader
  • FileReaderBufferedReader 在这里都无关紧要。您已经拥有String:,您如何获得它并不重要。尝试着眼于实际问题。

标签: java arrays string split delimiter


【解决方案1】:

根据您的新评论

String str;
while ((str = Login.readLine()) !=null ) { 

    String [] x = str.Split(" ");

    // ?? new method to scan string array
    scanThis (x);
    sb.append(str);
    sb.append("\n");

}

void scanThis (String arr[]) 
{
  for (int x = ; x < arr.length; x++) {
  {
      if (arr[x].equals ("login")) {
          System.out.println ("Hurray");
          break;
      }
   } 
}     

【讨论】:

  • 我正在尝试测试您的代码,但它给了我的问题,因为它在等待操作类中。 (我认为这就是问题以及其他几个问题。)我没有足够的经验知道如何做我需要做的事情。
  • 你不需要第二种方法。只需致电arr.contains("login")
【解决方案2】:

我在String [] x = Login.Split(""); 收到语法错误

不,你不是,你得到一个编译器错误,读取类似“没有这样的方法”的内容。这不是语法错误。

Login(愚蠢的名字)是BufferedReader,而BufferedReader 没有Split() 方法。另一方面,String确实有一个split() 方法(注意大小写)。大概这就是你要找的东西。

但是在一个空字符串上拆分并不能完成任何有用的事情。

【讨论】:

  • 你的权利。感谢您为我指明正确的方向。事实上,我觉得很愚蠢,我想删除我的整个帖子。我意识到我可以只比较整行,所以我的用户将输入什么并将两个输入相加,然后比较整行。
【解决方案3】:

我不清楚你想要什么?

A : 你想把你的阅读器中的单独的行放到一个数组中吗?据我所知,readline() 方法已经读取了一行文本。

B 如果你想分割行中的单词,你可以尝试使用这个: String[] x = Login.trim().split("//s"); //RegEx 将在单词之间占一个以上的空格,如果有的话,trim() 将在行的开头和结尾处剪掉空格。

但是我可以看到,在尝试拆分数组中的单词之前,您没有将一行读入您的阅读器。所以它试图拆分其中没有任何数据的东西。

请注意,我刚开始使用 Java,但我希望这会有所帮助。

【讨论】:

  • 你正中了它的头。我没有关注问题的正确部分。出于某种原因,我认为我需要比较同一行上的两个单词,并且认为最好的方法是创建一个数组,并将其与用户的输入进行比较。实际上,更简单的解决方案是将两个输入串在一起并将它们与文件的行进行比较。 (现在要弄清楚如何让这一切发生。我想我差不多了。)
  • 我很高兴能帮上忙 :)
  • trim() 不会在将单个部分放入 x 数组时将它们去掉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2012-02-22
  • 1970-01-01
相关资源
最近更新 更多