2012-10-06 32 views
0

我是java的新手,我在程序的一部分中遇到了严重问题。在Java中处理字符串的值(处理)并与ascii值进行比较

我正在使用名为Voce的库。用于语音识别。它识别语音或单词,与其内置语法进行比较,并以“字符串”值打印。 例如:如果您说“五”,它会打印“五”。

我问这个问题的原因是。我该如何将该字符串值与期望值进行比较。 例如:如果该值是“十二五”然后将其存储在另一个字符串作进一步加工

这里是代码: 您可以在这里找到的纯音库 http://voce.sourceforge.net/ /////////// /////////////////////////////

//import the libraries 
import guru.ttslib.*; 
import processing.serial.*; 

//give our instances names 
Serial treePort; 
TTS tts; 

void setup(){ 
    //the following initiates the voce library 
    voce.SpeechInterface.init("libraries/voce-0.9.1/lib", true, true,"libraries/voce-0.9.1/lib/gram","digits"); 
    //start our port and also tts 
    treePort = new Serial(this,Serial.list()[0],9600); 
    tts = new TTS(); 
    //the following settings control the voice sound 
    tts.setPitch(180); 
    tts.setPitchRange(90); 
    //tts.setPitchShift(-10.5); 
    treePort.write("73"); //send command to turn on the lights and open the eyes 
} 

void draw(){ 

    if (voce.SpeechInterface.getRecognizerQueueSize()>0){ //if voce recognizes anything being said 
     String s = voce.SpeechInterface.popRecognizedString();  //assign the string that voce heard to the variable s 
     println("you said: " + s);       //print what was heard to the debug window. 
     respond(s); 
    } 

} 
//This function will split the text up into multiple words, and decide how to animate depending on the length of each word and also pauses which are denoted by "!" 
void respond(String input){ 
    if (input.length() > 0){ //we actually have something to say 
    voce.SpeechInterface.setRecognizerEnabled(false); //stop listening, otherwise we will hear ourselves and go into a loop 
    //this just splits up all the words sends motion 
    String[] words = split(input," "); 
    int howMany = words.length; 

    for(int i=0;i<howMany;i++){ 
    String pieces[] = split(words[i],"!"); //if we see a ! then reading pauses slightly so it is a good time to blink 
    if(pieces.length==2){ 
    treePort.write("1"); 
    int pause = int(random(100)); 
    if(pause>60){ 
     treePort.write("5"); 
    } 
    else{ 
     treePort.write("7"); 
     delay(500); 
    } 
    } 
    else{ 
     treePort.write("1"); 
    } 

    } 
    tts.speak(input); 
    voce.SpeechInterface.setRecognizerEnabled(true); 
} 
} 
+2

d你的意思是像'if(pieces [0] .equals(“five”))...'? – dasblinkenlight

+0

是的。但只有当它工作.. –

+0

可能的重复[如何比较Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

回答