在Java中拆分一个字符串并拾取其中的一部分

时间:2013-09-29 20:23:11

标签: java split

假设我从

这样的文本文件中获取了一个字符串

"是ABC 123

是DEF 456

是GHI 789"

我使用此代码按空格分割字符串。

while (inputFile.hasNext())
  {
     String stuff = inputFile.nextLine();

     String[] tokens = stuff.split(" ");

     for (String s : tokens)
     System.out.println(s);
  }

但是我也希望将Yes分配给布尔值,ABC分配给另一个字符串,123分配给int。 我怎么能单独拿起它们?谢谢!

4 个答案:

答案 0 :(得分:1)

boolean b=tokens[0].equalsIgnoreCase("yes");
String name=tokens[1];
int i=Integer.parseInt(tokens[2]);

答案 1 :(得分:0)

你能否澄清你正在做的目的是什么?您可以使用令牌[i]来引用单独的字符串,其中i是索引。您可以将它们放入switch语句(从Java 7开始)并匹配您正在寻找的单词。然后你可以采取进一步的行动,即将字符串转换为布尔语或Ints。

您应该考虑检查输入是否有效,即使您希望文件始终将这3个单词用空格分隔。

答案 2 :(得分:0)

创建将您的所有文件存储到列表中的类LineList<Line>

public class Line{

private boolean mFlag = false;
private int  mNum = 0;
private String  mStr;

public Line(String stuff) {
    String[] tokens = stuff.split("[ ]+");

    if(tokens.length ==3){
        mFlag=tokens[0].equalsIgnoreCase("yes");
        mNum=Integer.parseInt(tokens[1]);
        mStr=tokens[3];
    }
}
}

并称之为:

public static void main(String[] args) {

 List<Line> list = new ArrayList<Line>(); 
 Line line;

 while (inputFile.hasNext())
 {
  String stuff = inputFile.nextLine();

  line = new Line(stuff);

  list.add(line);
 }
}

答案 3 :(得分:0)

如果您的输入字符串将始终采用相同的格式,即booleanStringint,那么您可以访问token数组的各个索引并转换它们为您指定的格式

boolean opinion = tokens[0].equalsIgnoreCase("yes");
String temp = token[1];
int i = Integer.parseInt(token[2])

但您可能需要创建一个数组或某些内容来存储用户所做的连续输入的值,否则这些变量会因用户的每个新输入而被覆盖。