Строку в буфер средствами Java

Запихиваю в буфер так:

private void putToClipBoard(String str) {
	Clipboard clbrd = Toolkit.getDefaultToolkit().getSystemClipboard();		
	StringSelection strsel = new StringSelection(str);					
	clbrd.setContents(strsel, null);
}

При вставке (имитация нажатия ctrl V) из буфера в поле обнаруживаю что появляется лишний пробел.
Внимание вопрос: Как лечить?

1 лайк

А где пробел появляется, в конце? Может тогда trim() ?

Под лечить я подразумевал как сделать так чтобы в буфер заталкивалось правильно))

Я чисто ради эксперимента проверил у себя код и у меня код работает без вставки пробелов. Даже нет предположения, как он может вставиться. Может быть строка уже с пробелом приходит в метод?

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;


public class Clip{
	
	private void putToClipBoard(String str) {
	    Clipboard clbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
	    StringSelection strsel = new StringSelection(str);                  
	    clbrd.setContents(strsel, null);
	}
	
	public static void main(String[] args) {
		Clip c = new Clip();
		c.putToClipBoard("Clipboard");
	}
}

Прошу прощения за долгий ответ. Разобрался.
И как всегда ответ на поверхности.

Михаил, ты прав. Строка действительно приходит с пробелом.

В строке (строка с запрещенными для ввода в поле символами) есть сочетание “\0”, что собственно и дает после прохождения через мясорубку кода пробел на выходе.

Убрав из строки это сочетание проблема сама собой решилась.
Спасибо

Ну вот я тоже так и думал. Ментальная помощь - это тоже помощь! :v:

Некоторые любят говорить

Это карма такая у человека, приходишь и все начинает работать!

:smile:

Это ж хорошо, что проблема так просто решается ))
Значит все не так плохо. Просто иногда надо вспоминать добрым словом хороших людей