从java中的控制台输入空格

时间:2016-04-27 11:50:14

标签: java whitespace

如果我从控制台输入空格, 控制台将此打印为字符串。但是,如果我直接这样做,它可以正常工作。为什么?如何从控制台输入中将空格打印为空格?

#include "Demo.h"

// Declare our game instance
Demo game;

Demo::Demo()
    : _scene(NULL), _wireframe(false)
{
}

void Demo::initialize()
{
    // Load game scene from file
    Bundle* bundle = Bundle::create("KGN56AI30N.gpb");
    _scene = bundle->loadScene();
    SAFE_RELEASE(bundle);
    // Get the box model and initialize its material parameter values and bindings

    Camera* camera = Camera::createPerspective(45.0f, getAspectRatio(), 1.0f, 20.0f);
    Node* cameraNode = _scene->addNode("camera");

    // Attach the camera to a node. This determines the position of the camera.
    cameraNode->setCamera(camera);

    // Make this the active camera of the scene.
    _scene->setActiveCamera(camera);
    SAFE_RELEASE(camera);
    // Move the camera to look at the origin.
    cameraNode->translate(0,0, 10);
    cameraNode->rotateX(MATH_DEG_TO_RAD(0.25f));
    // Update the aspect ratio for our scene's camera to match the current device resolution
    _scene->getActiveCamera()->setAspectRatio(getAspectRatio());
    // Set the aspect ratio for the scene's camera to match the current resolution
    _scene->getActiveCamera()->setAspectRatio(getAspectRatio());

    Light* directionalLight = Light::createDirectional(Vector3::one());
    _directionalLightNode = Node::create("directionalLight");
    _directionalLightNode->setLight(directionalLight);
    SAFE_RELEASE(directionalLight);
    _scene->addNode(_directionalLightNode);
    _scene->setAmbientColor(1.0, 1.0, 1.0);
  _scene->visit(this, &Demo::initializeMaterials);

}


bool Demo::initializeMaterials(Node* node)
{
        Model* model = dynamic_cast<Model*>(node->getDrawable());

        if (model)
        {
            for(int i=0;i<model->getMeshPartCount();i++)
            {
            Material* material = model->getMaterial(i);
            if(material)
            {
            // For this sample we will only bind a single light to each object in the scene.
            MaterialParameter* colorParam = material->getParameter("u_directionalLightColor[0]");
            colorParam->setValue(Vector3(0.75f, 0.75f, 0.75f));
            MaterialParameter* directionParam = material->getParameter("u_directionalLightDirection[0]");
            directionParam->setValue(Vector3(1, 1, 1));
            }
            }
        }
        return true;
}

void Demo::finalize()
{
    SAFE_RELEASE(_scene);
}

void Demo::update(float elapsedTime)
{
    // Rotate model
    //_scene->findNode("box")->rotateY(MATH_DEG_TO_RAD((float)elapsedTime / 1000.0f * 180.0f));
}

void Demo::render(float elapsedTime)
{
    // Clear the color and depth buffers
    clear(CLEAR_COLOR_DEPTH, Vector4::zero(), 1.0f, 0);

    // Visit all the nodes in the scene for drawing
    _scene->visit(this, &Demo::drawScene);
}

bool Demo::drawScene(Node* node)
{
    // If the node visited contains a drawable object, draw it
    Drawable* drawable = node->getDrawable(); 
    if (drawable)
        drawable->draw(_wireframe);

    return true;
}

void Demo::keyEvent(Keyboard::KeyEvent evt, int key)
{
    if (evt == Keyboard::KEY_PRESS)
    {
        switch (key)
        {
        case Keyboard::KEY_ESCAPE:
            exit();
            break;
        }
    }
}

void Demo::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
{
    switch (evt)
    {
    case Touch::TOUCH_PRESS:
        _wireframe = !_wireframe;
        break;
    case Touch::TOUCH_RELEASE:
        break;
    case Touch::TOUCH_MOVE:
        break;
    };
}

输入:输入空格:\ n \ t

输出:直接打印空格:     从控制台打印空格:\ n \ t

1 个答案:

答案 0 :(得分:1)

是的,现在它会起作用:

    ss=ss.replace("\n", "\\n");
    ss=ss.replace("\t", "\\t");
    ss=ss.replace("\f", "\\f");
    ss=ss.replace("\r", "\\r");
    ss=ss.replace("\\n", "\n");
    ss=ss.replace("\\t", "\t");
    ss=ss.replace("\\f", "\f");
    ss=ss.replace("\\r", "\r");