java 把数字替换掉_java – 将数字替换为数字

我试图将所有数字字零-9替换为字符串中对应的数字0-9.

我创建了两个数字单词和数字数组,然后尝试使用替换循环来更改句子.

不知道我做错了什么.

我正在引用我的getNoDigitWordString方法.

import java.util.*;

public class StringProcessor {

private String noSpaces;

private String input, noVowels;

private String noDigitWords;

private int numOfWords = 0, uppercaseLetters = 0,

numOfDigits = 0, digitWords = 0;

private String [] wordDigits = {"zero","one", "two", "three","four",

"five", "six", "seven", "eight", "nine"};

private String [] digits = {"0", "1", "2", "3", "4",

"5", "6", "7", "8", "9"};

public StringProcessor()

{

input = "";

}

public StringProcessor(String s)

{

StringTokenizer str = new StringTokenizer(s);

numOfWords = str.countTokens();

for (int i = 0; i < s.length(); i++)

{

if (Character.isUpperCase(s.charAt(i)))

uppercaseLetters++;

}

for (int i = 0; i < s.length(); i++)

{

if (Character.isDigit(s.charAt(i)))

numOfDigits++;

}

String [] strSplit = s.split(" ");

for(int i = 0; i < strSplit.length; i++)

{

for (int j = 0; j < wordDigits.length; j++)

{

if (strSplit[i].equalsIgnoreCase(wordDigits[j]))

digitWords++;

}

}

noSpaces = s.replace(" ","");

noVowels = s.replaceAll("[aeiou]", "-");

for(int i = 0; i < 10; i++)

{

noDigitWords = s.replace("wordDigits[i]", "digits[i]");

}

}

public void setString(String s)

{

input = s;

}

public String getString()

{

return input;

}

public int wordCount()

{

return numOfWords;

}

public int uppercaseCount()

{

return uppercaseLetters;

}

public int digitCount()

{

return numOfDigits;

}

public int digitWordCount()

{

return digitWords;

}

public String getNoSpaceString()

{

return noSpaces;

}

public String getNoVowelString()

{

return noVowels;

}

public String getNoDigitWordString()

{

return noDigitWords;

}

public static void main(String[] args)

{

String input;

Scanner keyboard = new Scanner(System.in);

System.out.print("Enter a line of text: ");

input = keyboard.nextLine();

StringProcessor str = new StringProcessor(input);

System.out.println("words: " + str.wordCount());

System.out.println("uppercase: " + str.uppercaseCount());

System.out.println("digits: " + str.digitCount());

System.out.println("digit words " + str.digitWordCount());

System.out.println("line with no spaces: " + str.getNoSpaceString());

System.out.println("line with vowels replaced: " + str.getNoVowelString());

System.out.println("line with digit words replaced: " + str.getNoDigitWordString());

}

}

谢谢.

解决方法:

这就是你要找的东西:

noDigitWords = s;

for(int i = 0; i < strSplit.length; i++)

{

for (int j = 0; j < wordDigits.length; j++)

{

if (strSplit[i].equalsIgnoreCase(wordDigits[j])){

noDigitWords = noDigitWords.replace(strSplit[i], digits[j]);

break;

}

}

}

而不是这个:

for(int i = 0; i < 10; i++)

{

noDigitWords = s.replace("wordDigits[i]", "digits[i]");

}

标签:java,string,replace

来源: https://codeday.me/bug/20190725/1531032.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值