从文件

时间:2016-03-27 10:30:15

标签: java regex string

我有一个要从文件加载的字符串:

JC 10D 6S 7S 7C 9H 8C KC 2H

我使用了扫描仪scan.next(),因此我每次只能获得一个表达式。

如何将这些表达式拆分为字符串?

例如JC into" J"和" C"。

我尝试过charAt(),但我意识到将10D分成" 10"和" D"因为我只是从文件中读取它。 我应该尝试使用String.split()吗?但是,我不知道如何使用正则表达式,因此实现必须简单。 谢谢!

2 个答案:

答案 0 :(得分:2)

  

它实际上是卡片的数据。 10D表示10 Diamond,JC Jack Club。

既然你知道你会得到两个部分,你可以用两个调用os substring方法来做到这一点:

  • 第一个调用为初始length()-1个字母
  • 创建子字符串
  • 第二个调用为最后一个字母
  • 创建一个子字符串

Demo.

String card = "10D";
String rank = card.substring(0, card.length()-1);
String suit = card.substring(card.length()-1);

答案 1 :(得分:2)

使用Regex可以执行此操作:

       String s = "JC";
       Pattern p = Pattern.compile("\\d+");
       Matcher m = p.matcher(s);
       if(m.find()) {
         System.out.println("Rank :"+m.group());
         System.out.println("Suit :"+s.substring(m.end()));
       } else {

           System.out.println("Rank :"+s.substring(0,1));
           System.out.println("Suit :"+s.substring(1));   
       }