假设我有一个包含换行符和制表符的长字符串:
var x = "This is a long string.\n\t This is another one on next line.";
Run Code Online (Sandbox Code Playgroud)
那么我们如何使用正则表达式将此字符串拆分为标记?
我不想使用,.split(' ')因为我想学习Javascript的正则表达式.
一个更复杂的字符串可能是这样的:
var y = "This @is a #long $string. Alright, lets split this.";
Run Code Online (Sandbox Code Playgroud)
现在我只想从这个字符串中提取有效单词,没有特殊字符和标点符号,即我想要这些:
var xwords = ["This", "is", "a", "long", "string", "This", "is", "another", "one", "on", "next", "line"];
var ywords = ["This", "is", "a", "long", "string", "Alright", "lets", "split", "this"];
Run Code Online (Sandbox Code Playgroud) 我想尝试这样的输出:
555
555
5555
Run Code Online (Sandbox Code Playgroud)
使用代码:
public class Split {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String phoneNumber = "(555) 555-5555";
String[] splitNumberParts = phoneNumber.split(" |-");
for(String part : splitNumberParts)
System.out.println(part);
Run Code Online (Sandbox Code Playgroud)
但是不知道如何从第一个元素中删除"()".
提前致谢.
问候
我想我把它打破了最基本的形式.如果没有,那么我道歉并将尝试编辑它.为什么在我的while循环中,如果我已经将变量设置为String,我需要为FirstName强制转换String?难道我做错了什么?我尝试将FirstName变量设置为等于第一个标记,该标记应该是文本文件的第一个单词等.
try
{
BufferedReader infileCust =
new BufferedReader(new FileReader("C:\\custDat.txt"));
}
catch(FileNotFoundException fnfe)
{
System.out.println(fnfe.toString());
}
catch(IOException ioe)
{
System.out.println(ioe.toString());
}
}
public static void createCustomerList(BufferedReader infileCust,
CustomerList custList) throws IOException
{
String FirstName;
String LastName;
int CustId;
//take first line of strings before breaking them up to first last and cust ID
String StringToBreak = infileCust.readLine();
//split up the string with string tokenizer
StringTokenizer st = new StringTokenizer(StringToBreak);
while(st.hasMoreElements()){
FirstName = (String) st.nextElement();
LastName = (String) st.nextElement();
CustId = Integer.parseInt((String) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用分割文本在j2me中创建一个数组.我正在尝试使用ostermiller.org中的StringTokenizer类.但是我无法弄清楚如何将标记分配到数组中.这段代码有什么问题?
String[] myToken;
StringTokenizer tokenObject;
tokenObject = new StringTokenizer("one-two-three","-");
myToken= tokenObject.nextToken();
Run Code Online (Sandbox Code Playgroud) 我很困惑 hasmoreelements 和 stringtokenizer 的 hasmoretokens 方法。
我想知道有什么区别
有人能解开我的困惑吗?
谢谢
我想用第一个空格分割一个字符串(行),但只是第一个空格.
StringTokenizer linesplit = new StringTokenizer(line," ");
Run Code Online (Sandbox Code Playgroud)
以"这是一个测试"为例.然后我希望字符串是"This"和"是一个测试".我怎么能使用StringTokenizer或者有更好的选择?
我需要一些帮助:我正在用 Java 进行超市模拟,但我遇到了一个问题,我有一个文本文件 (Stock.txt),其中包含所有超市库存,例如:
其中第一个数字是产品的“id”,其次是产品所属的部门,第三个是产品名称,接下来是价格,最后一个数字是该产品的库存数量. 我有这门课:
public class Product {
protected String name;
protected double price;
protected String department;
protected int id;
protected int stock;
}
Run Code Online (Sandbox Code Playgroud)
所以,基本上我需要做的是从文本文件中读取每一行并创建产品,即对于第一行,做这样的事情:
Product product1 = new Product(0,"Bakery","Chocolate Cake", 12.5, 250);
Run Code Online (Sandbox Code Playgroud)
然后将其添加到数组中
Product[0] = product1;
Run Code Online (Sandbox Code Playgroud)
对于文本文件中的所有内容,当运行模拟时,每个客户将购买随机数量的库存随机产品,因此库存数量将减少。最后,当模拟结束时,程序必须在同一个文本文件中写入每个产品的修改数量。
问题是这可能太容易了,但我不知道如何做到这一点,因为自从我开始用 Java 编程(我是初学者)以来,用 Java 读取和写入文件对我来说一直是一个真正的问题。我有一些使用 BufferedReader 和 StringTokenizer 类来读取和创建对象问题的想法,但我不知道如何去做,我也不知道我必须如何做覆盖问题。我真的很感激你的帮助!
哦!顺便说一句,我真的只需要使用数组,所以使用 ArrayList 或任何其他结构甚至都不是一个选择:(
看了一个多小时,似乎找不到实现这个的方法.我有一个stringtokenizer对象,它拆分了一个字符串(一个数学表达式).在达到某一点后,我希望能够在当前位置之后取出字符串剩余的内容(我想在递归时使用它)
如果我做
StringTokenizer sTokenizer = new StringTokenizer(expression);
//operations with some of the tokens here
System.out.println(sTokenizer.nextToken());
Run Code Online (Sandbox Code Playgroud)
它将以空格分隔.
我试过了
sTokenizer.nextToken(null)
Run Code Online (Sandbox Code Playgroud)
但这只是抛出一个空指针异常.
我知道我可以在参数中放入一些不太可能出现在表达式中的随机字符串,但这并不理想.
如果我用子串实现这个
expression.substring(currentposition)
Run Code Online (Sandbox Code Playgroud)
会工作,但我需要stringtokenizer.
简而言之,我正试图找出一种方法来检索字符串的剩余部分(由stringtokenizer使用)作为单个标记.
我正在创建一个程序,让用户输入一个句子,然后,应用程序会将String分解为子字符串,其中空格是打破原始字符串的原因.
import java.util.StringTokenizer;
public class whitespace {
public static void main(String[] args) {
String text = "supervisors signature tom hanks";
int tokenCount; //number of words
int idx=0; // index
String words[]=new String [500]; // space for words
StringTokenizer st=new StringTokenizer(text); // split text into segements
tokenCount=st.countTokens();
while (st.hasMoreTokens()) // is there stuff to get?
{
words[idx]=st.nextToken();
idx++;
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我有这个代码,虽然它作为常规Java程序工作正常,但while循环似乎导致应用程序进入无限循环.有任何想法吗?
晚上好,
我需要从文件中读取一些行,该文件是 csv,文件的结构如下:
4,
Mo Farah,30,
Jessica Ennis,27,
Run Code Online (Sandbox Code Playgroud)
我需要读取这些值并将它们放入变量中,这就是我尝试执行此操作的方式:
while(nextline != null){
StringTokenizer st = new StringTokenizer(nextline,",");
int size = Integer.parseInt(st.nextToken());
System.out.println(size);
nextline = reader.readLine();
StringTokenizer st2 = new StringTokenizer(nextline, ","); //why???
String name = st2.nextToken();
System.out.println(name);
int age = Integer.parseInt(st2.nextToken());
System.out.println(age);
Run Code Online (Sandbox Code Playgroud)
第一个 int (4) 读取得很好,但是如果我想移动到下一行,它会抛出 noSuchElementException,所以我必须在“//why???”旁边写下这一行 为了移至下一行,每次我想移至下一行时,我真的必须实例化一个新的分词器吗?或者有更好的方法吗?
非常感谢