首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中将特定的单词与字符串分开。

在java中将特定的单词与字符串分开。
EN

Stack Overflow用户
提问于 2016-08-25 03:53:29
回答 4查看 89关注 0票数 0

java中,有没有办法将单词从字符串中拆分出来?

代码语言:javascript
运行
复制
String my ="StackOverFlow PF Apple FT Laptop HW."

PF =平台,FT =水果,HW =硬件。

预期输出应为

代码语言:javascript
运行
复制
StackOverFlow  is a Platform.
Apple  is a Fruit.
Laptop is a hardware.

我是这样做的:

代码语言:javascript
运行
复制
String[] words = my.split(" ");
  for(int u=0 ; u<words.length ; u++){
      System.out.println( words(u));
  }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-08-25 04:24:54

代码语言:javascript
运行
复制
public class StackOverflow {

    public static void main(String[] args) {
        // Fields
        String myString = "StackOverFlow PF Apple FT Laptop HW";

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

        for (int i = 0; i < tokens.length; i++) {
            System.out.print(tokens[i]);
            // Every other token
            if (i % 2 == 0) {
                System.out.print(" is a " + convert(tokens[i + 1]));
                i++;
            }
            System.out.println();
        }

    }

    /**
     * convert method turns the abbreviations into long form
     */
    private static String convert(String s) {
        String str;
        switch (s) {
            case "PF":
                str = "Platform";
                break;
            case "FT":
                str = "Fruit";
                break;
            case "HW":
                str = "Hardware";
                break;
            default:
                str = "Unknown";
                break;
        }
        return str;
    }

}
票数 0
EN

Stack Overflow用户

发布于 2016-08-25 04:18:44

如果您可以保证这些值将按上述顺序排列,那么应该可以使用下面这样的方法

代码语言:javascript
运行
复制
public static void main(String[] args) {
    String my = "StackOverflow PF Apple FT Laptop HW";
    String[] words = my.split(" ");
    for (i = 0; i < words.length; i++) {
        if (i % 2 == 0) {
            System.out.print(words(i) + " is a ");
        } else {
            System.out.println(getTranslation(words(i)));
        }
    }
}

private String getTranslation(String code) {
    if ("PF".equals(code)) {
        return "Platform";
    }
    //etc...
}

本质上,这将做的是将字符串拆分成所有的单词。因为单词是“配对”在一起的,所以它们将以2个一组的形式出现。这意味着您可以检查单词的索引是偶数还是奇数。如果它是偶数,那么你就知道它是第一个配对的单词,这意味着你可以在它后面附加"is a“字符串。如果它是奇数,那么您需要附加转换后的值。

票数 0
EN

Stack Overflow用户

发布于 2016-08-25 04:21:44

使用正则表达式并将孔文本拆分为两个单词一组...

然后用空格拆分数组中的每个元素,就完成了!

示例:

代码语言:javascript
运行
复制
public static void main(String[] args) throws ParseException {
String inputTxt = "StackOverFlow PF Apple FT Laptop HW.";
String[] elements = inputTxt.split("(?<!\\G\\w+)\\s");
System.out.println(Arrays.toString(elements));
System.out.println(elements[0].split(" ")[0] + " is a Platform");
System.out.println(elements[1].split(" ")[0] + " is a Fruit");
System.out.println(elements[2].split(" ")[0] + " is a Hardware");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39131976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档